sql >> Databasteknik >  >> RDS >> Sqlserver

Hur ställer man in tabellnamn i dynamisk SQL-fråga?

För att skydda mig mot SQL-injektion försöker jag normalt använda funktioner där det är möjligt. I det här fallet kan du göra:

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


  1. Ändra standardformat för datum och tid på en enda databas i SQL Server

  2. Konfigurera en lokal SQL Server-databas

  3. Vad är Sequence i oracle

  4. Så här ser du frågehistorik i SQL Server Management Studio