Sql server 如何在Microsoft TSQL中的FROM子句中传递变量值
很抱歉,我上传了我的查询图片,因为我不知道如何格式化我的文本…作为一个新手,它让人困惑Sql server 如何在Microsoft TSQL中的FROM子句中传递变量值,sql-server,tsql,Sql Server,Tsql,很抱歉,我上传了我的查询图片,因为我不知道如何格式化我的文本…作为一个新手,它让人困惑 您可以将SQL游标与while循环一起使用。举例如下: 所以您希望执行: select * from File_20170703 -- where your table name is a variable. 不可能对表或列名使用变量,您需要做的是构建一个动态sql并使用sp_executesql执行它 以下是一个例子: DECLARE @sql nvarchar(4000) SELECT @sql = '
您可以将SQL游标与while循环一起使用。举例如下:
所以您希望执行:
select * from File_20170703 -- where your table name is a variable.
不可能对表或列名使用变量,您需要做的是构建一个动态sql并使用sp_executesql执行它
以下是一个例子:
DECLARE @sql nvarchar(4000)
SELECT @sql = 'SELECT * FROM File_20170703'
EXEC sp_executesql @sql
一个简单的TSQL“动态sql”如下所示:
DECLARE @file_name AS VARCHAR(100)
DECLARE @query AS VARCHAR(MAX)
SET @file_name = 'file_20170101'
SET @query = 'SELECT * FROM ' + @file_name
execute(@query)
基本上,您需要通过将查询的各个部分连接在一起来创建一个有效的sql查询,然后您可以将整个大字符串作为查询来执行。只需粘贴文本,这比图像要好得多。工具栏上有一个按钮,
{}
从左边缩进代码4个字符。另外:除非您构建所谓的“动态sql”,即:生成sql的sql,否则不能将表名作为变量传入