使用T-SQL变量查询数据库

时间:2015-06-24 10:26:24

标签: sql-server tsql sql-server-2012

是T-SQL的新手。我有一个变量保持表名称。我如何使用此变量查询同一个表

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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的风险。