Utilisation de T-SQL J'ai trouvé que je ne pouvais pas utiliser 'ALTER INDEX' avec les valeurs table/index dans les variables sans avoir d'erreur de syntaxe. Y a-t-il un moyen de le faire? Je suis sur SQL Server 2005.SQL Server - comment utiliser 'ALTER INDEX' avec des variables comme paramètres
Mon code ressemble à ceci:
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)
L'erreur de syntaxe ressemble à ceci:
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'.
Le code réel je travaille est plus complexe que ce qui précède et être en mesure d'utiliser des variables serait utile. Je suppose que l'un des moyens serait d'utiliser le SQL dynamique mais je préférerais vraiment ne pas pouvoir l'éviter.
Merci j'avais oublié, vous pouvez exec simples lignes de SQL (pensé que vous deviez construire un SP ou quelque chose) faire ce que vous proposez est bien. Merci encore pour votre aide. – shearichard
Mon plaisir, heureux je pourrais aider :) –