表名占位符 - TSQL [英] Table name placeholder - TSQL

查看:35
本文介绍了表名占位符 - 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆