我在sql server中有64个表我想在所有表中应用非聚簇索引。是否可以使用query一次在所有表中应用非聚簇索引。请告诉我是否有任何方法可以应用索引使用单一查询
答案 0 :(得分:0)
您可以使用光标和动态查询来执行此操作:
DECLARE @t NVARCHAR(MAX)
DECLARE @s NVARCHAR(MAX)
DECLARE cur CURSOR FAST_FORWARD READ_ONLY
FOR
SELECT name
FROM sys.tables
OPEN cur
FETCH NEXT FROM cur INTO @t
WHILE @@FETCH_STATUS = 0
BEGIN
SET @s = 'CREATE NONCLUSTERED INDEX IDX_' + @t + ' ON dbo.' + @t + '(id)'
EXEC (@s)
FETCH NEXT FROM cur INTO @t
END
CLOSE cur
DEALLOCATE cur
当然,您需要将此调整为适合您要添加索引的列。