Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IF @DatabaseName IS NULL
- RAISERROR('Null values not allowed for @DatabaseName', 16, 1)
- IF @TableName IS NULL
- RAISERROR('Null values not allowed for @TableName', 16, 1)
- IF @EnableDisable IS NULL
- RAISERROR('Null values not allowed for @EnableDisable', 16, 1)
- DECLARE @SQL NVARCHAR(4000)
- -- Interpret 1 as enable and 0 as disable. Also set to Upper case
- SET @EnableDisable = CASE UPPER(@EnableDisable) WHEN '1' THEN 'ENABLE'
- WHEN 'REBUILD' THEN 'ENABLE'
- WHEN '0' THEN 'DISABLE'
- ELSE UPPER(@EnableDisable)
- END
- SET @SQL = ' DECLARE @SQLIn NVARCHAR(4000)
- SELECT @SQLIn = COALESCE(@SQLIn,'' '')
- + SQL1 FROM ( (SELECT '' ALTER INDEX '' + si.name + '' ON ' + @DatabaseName + ' .dbo.'' + st.name + ' + CASE @EnableDisable WHEN 'DISABLE' THEN ''' DISABLE '''
- WHEN 'ENABLE' THEN ''' REBUILD WITH (SORT_IN_TEMPDB = ON) ''' END + '
- AS SQL1
- FROM ' + @DatabaseName + '.Sys.indexes si
- JOIN ' + @DatabaseName + '.Sys.tables st ON si.object_id = st.object_id
- WHERE st.name = ''' + @TableName + '''
- AND (si.is_unique = 0
- AND si.is_unique = 0
- AND si.is_primary_key = 0
- AND si.[type] = 2
- )
- AND si.is_disabled = ' + CASE @EnableDisable WHEN 'DISABLE' THEN '0'
- WHEN 'ENABLE' THEN '1'
- END + '
- AND si.Name IS NOT NULL
- ) ) tb
- EXEC sp_sqlexec @SQLIn '
- EXEC sp_sqlexec @SQL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement