首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL中的from语句中使用局部变量

在SQL中的from语句中使用局部变量
EN

Stack Overflow用户
提问于 2012-08-31 01:46:16
回答 2查看 2.4K关注 0票数 0

我有一个数据库,其中每个表都由标准约定命名。我正在构建一个SQL脚本,定期在不同的命名相似的表上运行。

我想声明一个本地变量,该变量包含表之间的表名的公共部分,并使用该变量填充我的SELECT语句的FROM语句中的表名的一部分。

我如何将它抽象为在一个表上运行,在这个表中,局部变量的值被1234替换掉了?

代码语言:javascript
复制
Select count(*) From [Database].[dbo].[Table_1234]

这显然不起作用:

代码语言:javascript
复制
Select count(*) From [Database].[dbo].['Table_'+@variable]

有没有一种方法可以在select语句中使用局部变量作为表名,或者可以绕过它?

EN

回答 2

Stack Overflow用户

发布于 2012-08-31 01:52:45

免责声明:对我来说,这看起来像SQL Server,但问题并不是这样标记的。

您可以使用EXEC函数:

代码语言:javascript
复制
EXEC('Select count(*) From [Database].[dbo].[Table_' + @variable + ']')

SQL Fiddle:http://www.sqlfiddle.com/#!3/0ef1d/3

票数 2
EN

Stack Overflow用户

发布于 2012-08-31 02:04:37

我不知道如何绕过动态SQL。但我建议使用同义词将其最小化(假设您将运行多个/复杂查询,而不是简单的行数):

代码语言:javascript
复制
DECLARE @var NVARCHAR(8)

SET @var = '1234'

EXEC('create synonym synTable1 for Table1_' + @var)
EXEC('create synonym synTable2 for Table2_' + @var)
EXEC('create synonym synTable3 for Table3_' + @var)

SELECT COUNT(*) FROM synTable1
...

DROP SYNONYM synTable1
DROP SYNONYM synTable2
DROP SYNONYM synTable3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12202606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档