sql >> Databasteknik >  >> RDS >> Sqlserver

Dynamisk SQL (passerar tabellnamnet som parameter)

För det första har du utelämnat "+" från din sträng. Det här sättet att göra saker är långt ifrån idealiskt, men du kan göra

DECLARE @SQL varchar(250)
SELECT @SQL = 'SELECT * FROM ' + QuoteName(@Alias)
Exec(@SQL)

Jag rekommenderar dock starkt att du tänker om hur du gör detta. Att generera dynamisk SQL leder ofta till SQL Injection-sårbarheter och gör det svårare för SQL Server (och andra DB:er) att komma fram till det bästa sättet att bearbeta din fråga. Om du har en lagrad procedur som kan returnera vilken tabell som helst, får du egentligen ingen nytta av att det är en lagrad procedur i första hand eftersom den inte kommer att kunna göra mycket i vägen för optimeringar, och du till stor del försvagar säkerhetsfördelarna också.



  1. Ta bort kolumnrubrik i utdatatextfilen

  2. Anslut till mysql på Amazon EC2 från en fjärrserver

  3. Vad är standardprecision och skala för ett nummer i Oracle?

  4. Hur man skapar en vy i SQL Server