Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment définir le nom de la table dans une requête SQL dynamique ?

Pour aider à se prémunir contre l'injection SQL, j'essaie normalement d'utiliser des fonctions dans la mesure du possible. Dans ce cas, vous pourriez faire :

...
SET @TableName = '<[db].><[schema].>tblEmployees'
SET @TableID   = OBJECT_ID(TableName) --won't resolve if malformed/injected.
...
SET @SQLQuery = 'SELECT * FROM ' + OBJECT_NAME(@TableID) + ' WHERE EmployeeID = @EmpID'