Verwendung von T-SQL Ich habe festgestellt, dass ich 'ALTER INDEX' nicht mit den Tabellen-/Indexwerten in Variablen verwenden kann, ohne einen Syntaxfehler zu bekommen. Gibt es eine Möglichkeit, dies zu tun? Ich bin auf dem SQL Server 2005SQL Server - Verwendung von 'ALTER INDEX' mit Variablen als Parameter
Mein Code sieht wie folgt aus:
DECLARE @TABLENAME VARCHAR(256)
DECLARE @IDXNAME VARCHAR(256)
DECLARE @SCHEMAID INT
SET @TABLENAME = 'T1'
SET @IDXNAME = 'T1_IDX0'
-- The next line is OK as it hardcodes the variable names
ALTER INDEX T1_IDX0 ON T1 SET (ALLOW_PAGE_LOCKS = ON)
-- The next line generates a syntax error
ALTER INDEX @IDXNAME ON @TABLENAME SET (ALLOW_PAGE_LOCKS = ON)
Die Syntaxfehler wie folgt aussieht:
Msg 102, Level 15, State 1, Line 7
Incorrect syntax near '@IDXNAME'.
Msg 156, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'SET'.
Der eigentliche Code arbeite ich an ist komplexer als die oben genannten und in der Lage sein, Variablen zu verwenden, wäre nützlich. Ich denke, ein Weg, um es zu verwenden wäre dynamische SQL verwenden, aber ich würde wirklich lieber nicht, wenn ich es vermeiden könnte.
Dank hatte ich ganz vergessen Sie einzelne Zeilen von SQL exec konnte (haben Sie einen SP oder etwas zu bauen hatte), so zu tun, was Sie vorschlagen, ist in Ordnung. Danke nochmal für deine Hilfe. – shearichard
Mein Vergnügen, froh, dass ich helfen konnte :) –