Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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_Sql_Sql Server_Tsql - Fatal编程技术网

在等号左侧组合声明字符串变量的SQL

在等号左侧组合声明字符串变量的SQL,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图在等号的左侧组合两个声明的字符串变量,这将使我能够选择变量的调用方式。这可能吗?我想我可以为我想做的事情找到一个解决方案,但是下面的代码会更简洁 这是我迄今为止所做的,但它不起作用: DECLARE @operate VARCHAR(2000) DECLARE @date5 VARCHAR(6) DECLARE @month VARCHAR(2) SET @month=5 SET @operate='(@date' +@month+ '=10)' EXEC(@operate) PRINT(

我试图在等号的左侧组合两个声明的字符串变量,这将使我能够选择变量的调用方式。这可能吗?我想我可以为我想做的事情找到一个解决方案,但是下面的代码会更简洁

这是我迄今为止所做的,但它不起作用:

DECLARE @operate VARCHAR(2000)
DECLARE @date5 VARCHAR(6)
DECLARE @month VARCHAR(2)
SET @month=5
SET @operate='(@date' +@month+ '=10)'
EXEC(@operate)
PRINT(@date5)

这正是你所要求的,尽管我忍不住觉得这不是最好的工作方式,而且可能只是为将来积累了维护方面的麻烦。但是,如果没有更多的上下文信息,就很难提出替代方案。考虑创建一个关于更高层次问题的方法和方法。我想也许有一种更简单的方法将数据存储在表中

它假设所有@dateX变量都是varchar(6):


不能像那样使用exec()来计算字符串,请使用sp_executeSQL¶meters。你们应该更充分地解释你们想要完成什么。需求不明确,在这方面你们真的会有所帮助。向我们显示起始值和所需输出。
DECLARE @operate NVARCHAR(2000)
DECLARE @params NVARCHAR(2000)
DECLARE @date5 VARCHAR(6)
DECLARE @month VARCHAR(2)
SET @month=5
SET @operate=N'set @date' + @month + '=10'
SET @params=N'@date' + @month + ' varchar(6) OUTPUT'
exec master.dbo.sp_ExecuteSQL @operate, @params, @date5=@date5 output
PRINT(@date5)