表名占位符 - TSQL [英] Table name placeholder - TSQL
本文介绍了表名占位符 - TSQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法做这样的事情?People 是表的名称.
Is there a way to do something like this? People is the name of the table.
declare @placeholder varchar(20) = 'People'
select * from @placeholder
或者类似的表名是 People_Backup.
Or something like this where the table name is People_Backup.
declare @placeholder varchar(20) = '_Backup'
select * from People@placeholder
有没有办法在动态sql中添加变量的值?像这样:
And is there a way to add in dynamic sql the value of a variable? something like this:
declare @placeholder nvarchar(20) = 'people'
declare @name nvarchar(30) = 'antony'
declare @query nvarchar(1000) = 'select * from ' + @placeholder + ' where
first_name=' + @name
exec sp_executesql @query
我的意思是:不这样做
exec sp_executesql @query, N'@name varchar(30)', @name
感谢您的回答.
推荐答案
我的意思是:不这样做
exec sp_executesql @query, N'@name varchar(30)', @name
是的,你可以这样做
--Use MAX instead of 1000
DECLARE @SQL nvarchar(MAX) = N'SELECT * FROM ' + @placeholder + ' WHERE first_name = '''+@name +'''';
EXECUTE sp_executesql @SQL;
这篇关于表名占位符 - TSQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文