Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como definir o nome da tabela na consulta SQL dinâmica?


Para ajudar a proteger contra injeção de SQL, normalmente tento usar funções sempre que possível. Neste caso, você poderia fazer:
...
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'