Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Динамичен SQL (предаване на името на таблицата като параметър)

Е, първо сте пропуснали '+' от своя низ. Този начин на правене на нещата далеч не е идеален, но можете да го направите

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

Въпреки това силно препоръчвам да преосмислите как да направите това. Генерирането на динамичен SQL често води до уязвимости при SQL инжектиране, както и затруднява SQL Server (и други DBs) да изработят най-добрия начин за обработка на вашата заявка. Ако имате съхранена процедура, която може да върне всяка таблица, вие наистина не получавате почти никаква полза от това, че е съхранена процедура на първо място, тъй като няма да може да направи много по пътя на оптимизацията, а вие сте до голяма степен намалява и ползите от сигурността.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предаване на масив от ints към T-SQL съхранена процедура чрез структура на обекти

  2. Как да шифровате дефинирана от потребителя функция в SQL Server

  3. DATENAME() Примери в SQL Server

  4. Еквивалентна функция на разделяне в T-SQL?

  5. Как DB_NAME() работи в SQL Server