我想在我的SQL中用Transact-SQL创建一个EXEC,如:
set @name = 'test'
set @sql = 'insert into TempTable values('+@name+')'
EXEC( @sql)
但是我无法在sql字符串中插入varchar,因为我无法将'进入字符串,以便知道@name是一个varchar。
答案 0 :(得分:0)
首先使用declare,set声明变量,然后你可以使用它。 在完整代码下面:
DECLARE @name VARCHAR (500)
SET @name = 'test';
set @sql = 'insert into TempTable values('''+@name+''')'
EXEC( @sql)
使用(''')三个引号来添加你的varchar。
答案 1 :(得分:0)
这样的简单插入语句不需要使用Dynamic SQL
执行。您可以使用下面的查询轻松实现相同的目标。
DECLARE @name VARCHAR (500)
SET @name = 'test';
insert into TempTable values(@name)
有关动态sql相关问题的详细信息,请参阅以下链接。
答案 2 :(得分:0)
在处理动态查询时,请忘记使用EXEC
。在SQL Server中,您应该使用sp_executesql
DECLARE @name VARCHAR(500);
SET @name = 'test';
DECLARE @query = NVARCHAR(MAX) = 'INSERT INTO TempTable VALUES (@name)';
EXEC sp_executesql
@stmt = @query,
@params = N'@name VARCHAR(500)',
@name = @name
有了这个