Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie setze ich den Tabellennamen in einer dynamischen SQL-Abfrage?

Um mich vor SQL-Injection zu schützen, versuche ich normalerweise, wo immer möglich, Funktionen zu verwenden. In diesem Fall könnten Sie Folgendes tun:

...
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'