Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在Microsoft TSQL中的FROM子句中传递变量值_Sql Server_Tsql - Fatal编程技术网

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,否则不能将表名作为变量传入