declare @A INT
declare @B INTSET @A=7
SET @B=9declare @Sql varchar(400)
set @Sql='@A+@B'select @A+@B --16
如何将@Sql进行转化后最终 效果
select @Sql 也能得到 16值期待佳音!!!
declare @B INTSET @A=7
SET @B=9declare @Sql varchar(400)
set @Sql='@A+@B'select @A+@B --16
如何将@Sql进行转化后最终 效果
select @Sql 也能得到 16值期待佳音!!!
set @Sql=@A+@B
select @sql
?
set @Sql='@A+@B'是这个
set @Sql='@A+@B'
是字符串
declare @Sql varchar(400)
set @Sql='@A+@B'获得结果
这本身是字符串
除非你把定义都放@sql里
declare @B INTSET @A=7
SET @B=9declare @Sql nvarchar(400)
set @Sql=N'select @A+@B'exec sp_executesql @Sql,N'@A int,@B int',@A=@A,@B=@B--结果
/*-----------
16(1 row(s) affected)
*/
set @Sql='' + @A+@B
declare @B INTSET @A=7
SET @B=9declare @Sql nvarchar(400)
set @Sql='SELECT @A+@B'execute sp_executesql @Sql,N'@A int,@B int',@A,@B
@A INT,
@B INT
AS
select @A + @B
GOexec proc_t 7,9
declare @A INT
declare @B INTSET @A=7
SET @B=9declare @Sql varchar(400)
set @Sql='@A+@B'结果:select 转化(@Sql) =16
直接去掉单引号就可以了,你把变量搞成字符了。。
declare @A INT
declare @B INTSET @A=7
SET @B=9declare @Sql varchar(400)
set @Sql=@A+@B
select @Sql
select @A+@B
declare @A INT
declare @B INTSET @A=7
SET @B=9declare @Sql varchar(400)
set @Sql='@A+@B'
select @A+@B declare @sql2 int
set @sql2=@A+@B
select @sql2
declare @A INT
declare @B INTSET @A=7
SET @B=9declare @Sql varchar(400)
set @Sql='@A+@B'select @A+@B --16 declare @s nvarchar(max)
set @s = N'Select ' + @Sql
exec sp_executesql @s,N'@a int,@b int',@a=@a,@b=@b