sql >> Database >  >> RDS >> Sqlserver

Dynamische SQL (tabelnaam doorgeven als parameter)

Nou, ten eerste heb je de '+' weggelaten uit je string. Deze manier van doen is verre van ideaal, maar je kunt het wel

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

Ik zou echter sterk aanbevelen om te heroverwegen hoe je dit doet. Het genereren van dynamische SQL leidt vaak tot kwetsbaarheden voor SQL-injectie en maakt het ook moeilijker voor SQL Server (en andere DB's) om de beste manier te vinden om uw vraag te verwerken. Als je een opgeslagen procedure hebt die elke tabel kan retourneren, heb je er in de eerste plaats praktisch geen baat bij dat het een opgeslagen procedure is, omdat het niet veel kan doen aan optimalisaties, en je bent grotendeels ook de beveiligingsvoordelen ontkrachten.



  1. MariaDB SUBSTR() uitgelegd

  2. SQL SELECT DISTINCT:best practices voor prestaties

  3. Batch meerdere select-instructies bij het aanroepen van Oracle vanuit ADO.NET

  4. Equivalent van LIMIT en OFFSET voor SQL Server?