2017-07-20 7 views
1

Ist es möglich, einen Index mit der alter index-Anweisung über Dynamic SQL neu zu erstellen? Wenn ich die @sqlStringSpatial-Variable, die die Abfrage enthält, in eine einfache SELECT-Anweisung mit @i ändern, die immer noch wie erwartet funktioniert, aber nicht mit ALTER INDEX, ist das möglich?Verwenden von Dynamic SQL zu ALTER Index

DECLARE @sqlStringSpatial AS NVARCHAR(200) = N'ALTER INDEX @i ON dbo.test1910 REBUILD WITH (ONLINE = OFF)'; 
declare @dSQL as nvarchar(500) = N'@i nvarchar(50)'; 
DECLARE @indexName AS NVARCHAR(30) = N'Index01Tester'; 

EXEC sp_executesql @sqlStringSpatial, @dSQL, @i = @indexName; 

Antwort

0

Sie können nicht parametrieren identifiers

DECLARE @indexName AS NVARCHAR(30) = N'Index01Tester'; 

DECLARE @sqlStringSpatial AS NVARCHAR(200) = N'ALTER INDEX '+quotename(@indexName)+' ON dbo.test1910 REBUILD WITH (ONLINE = OFF)'; 

EXEC sp_executesql @sqlStringSpatial