Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. IF @DatabaseName IS NULL
  2. RAISERROR('Null values not allowed for @DatabaseName', 16, 1)
  3. IF @TableName IS NULL
  4. RAISERROR('Null values not allowed for @TableName', 16, 1)
  5. IF @EnableDisable IS NULL
  6. RAISERROR('Null values not allowed for @EnableDisable', 16, 1)
  7.  
  8. DECLARE @SQL NVARCHAR(4000)
  9.  
  10. -- Interpret 1 as enable and 0 as disable. Also set to Upper case
  11. SET @EnableDisable = CASE UPPER(@EnableDisable) WHEN '1' THEN 'ENABLE'
  12. WHEN 'REBUILD' THEN 'ENABLE'
  13. WHEN '0' THEN 'DISABLE'
  14. ELSE UPPER(@EnableDisable)
  15. END
  16.  
  17.  
  18. SET @SQL = ' DECLARE @SQLIn NVARCHAR(4000)
  19. SELECT @SQLIn = COALESCE(@SQLIn,'' '')
  20. + SQL1 FROM ( (SELECT '' ALTER INDEX '' + si.name + '' ON ' + @DatabaseName + ' .dbo.'' + st.name + ' + CASE @EnableDisable WHEN 'DISABLE' THEN ''' DISABLE '''
  21. WHEN 'ENABLE' THEN ''' REBUILD WITH (SORT_IN_TEMPDB = ON) ''' END + '
  22. AS SQL1
  23. FROM ' + @DatabaseName + '.Sys.indexes si
  24. JOIN ' + @DatabaseName + '.Sys.tables st ON si.object_id = st.object_id
  25. WHERE st.name = ''' + @TableName + '''
  26. AND (si.is_unique = 0
  27. AND si.is_unique = 0
  28. AND si.is_primary_key = 0
  29. AND si.[type] = 2
  30. )
  31. AND si.is_disabled = ' + CASE @EnableDisable WHEN 'DISABLE' THEN '0'
  32. WHEN 'ENABLE' THEN '1'
  33. END + '
  34. AND si.Name IS NOT NULL
  35. ) ) tb
  36.  
  37. EXEC sp_sqlexec @SQLIn '
  38.  
  39. EXEC sp_sqlexec @SQL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement