2015-06-24 2 views
-2

Является новым для T-SQL. У меня есть имя таблицы переменных. Как я запрашиваю такую ​​же таблицу, используя эту переменную какЗапросить базу данных с помощью T-SQLvariable

DECLARE @tb_name varchar(300) 
SET @tb_name = 'tbl_deleted_shipmentdata_record' 
select * from @tb_name 
+1

просто искать для динамического SQL, это было предложено много раз, увидеть ниже дублировать – Tanner

+0

я не знаю го члена для поиска. Большое спасибо –

+0

@Robert_Junior, прежде чем идти по динамическому пути SQL, просмотрите подробную статью по SQL Server MVP Эрланд Соммарског по этой теме. Речь идет не только о том, как вы это делаете, но должны ли вы. http://www.sommarskog.se/dynamic_sql.html –

ответ

3

Вы должны использовать динамический запрос:

DECLARE @tb_name VARCHAR(300) 
SET @tb_name = 'tbl_deleted_shipmentdata_record' 

DECLARE @sql NVARCHAR(300) = 'select * from ' + QUOTENAME(@tb_name) 
EXEC(@sql) 

QUOTENAME функция окружает @tb_name переменную с [tbl_deleted_shipmentdata_record]. Просто чтобы свести к минимуму риск sql injection.

4

Для этого вам необходимо написать динамический SQL.

DECLARE @tb_name varchar(300) 
SET @tb_name = 'tbl_deleted_shipmentdata_record' 

Declare @SQL Nvarchar(Max) 
SET @SQL = 'select * from '+ @tb_name 
Exec SP_ExecuteSQL @SQL 
Смежные вопросы