0
J'ai un morceau de code:variables sp_executesql
DECLARE @v int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @max_title varchar(30);
SET @IntVariable = 197;
SET @SQLString = N'SELECT @max_titleOUT = max(JobTitle)
FROM some_table
WHERE name = @level';
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @v, @[email protected]_title OUTPUT;
SELECT @max_title;
Je suis un peu confus au sujet de cette ligne:
WHERE name = @level';
Si @v
est une chaîne au lieu d'une variable int
, devrait Je mets des citations autour de @level
comme ça?
WHERE name = ''@level''';
Quand dois-je mettre des guillemets autour d'une variable à l'intérieur du @SQLString
?
Même 'name' est nvarchar (...) type? En général, nous allons écrire des déclarations comme 'WHERE name = '...'', non? –
@OgrishMan ne manquez pas, que '@ level' est une variable. Lorsque vous écrivez 'WHERE name = @ level' pas dans' sp_executesql 'vous ne mettez pas de guillemets, non? Donc, pas besoin de les mettre dans 'sp_executesql' – Backs
Oh, oui! Merci pour l'explication. Je suis clair maintenant mais je ne sais pas pourquoi je me sens confus à ce sujet tout à l'heure. Merci encore! –