是T-SQL的新手。我有一个变量保持表名称。我如何使用此变量查询同一个表
DECLARE @tb_name varchar(300)
SET @tb_name = 'tbl_deleted_shipmentdata_record'
select * from @tb_name
答案 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
的风险。