Concatinate变量在动态查询中定义

时间:2015-08-21 05:58:11

标签: dynamicquery

我正在构建一个动态查询。在里面,我已经声明了变量。现在我想在插入查询中连接这个变量

declare @qry nvarchar(MAX)
select @qry='Declare @var1 nvarchar(10); set @var1 =''abcd''
insert into mytable (col1) values ('+@var1+')'

当我执行此代码时,它会给我一个错误

  

必须声明标量变量“@ var1”。

但是如果我在@qry之外声明@ var1那么它运行正常。我在连接变量值方面遇到了问题。

请帮忙

由于

1 个答案:

答案 0 :(得分:0)

你做不到。动态查询的执行上下文与外部脚本不同。

这将起作用

declare @qry nvarchar(MAX)
Declare @var1 nvarchar(10); 
set @var1 ='abcd'
select @qry='insert into mytable (col1) values ('+@var1+')'