EXEC输出调用外部变量要怎么办呢? 本帖最后由 chirea 于 2012-05-05 00:21:21 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 declare @a nvarchar(100),@b int;set @b=20;set @a='select '+ltrim(@b)+'-2';exec(@a)这样? declare @a nvarchar(100),@b int;set @b=20;set @a=ltrim(@b-2);exec('print '+@a); declare @a nvarchar(100),@b int;set @b=20;set @a=ltrim(@b-2);exec('print '+@a); 不是这样,我是一个字符串里面有一个变量,但这个变量是由用户提供的,所有什么办法可以直接调用到外面的值呢?也就是用print @a是显示的是@b-1 这样的值可以直接与申明的值做运行,因为这里面我可能是日期可能是别的类型。declare @a nvarchar(100),@b int;set @b=20;set @a='@b-2';exec(@a) 因为从set @a='@b-2';@a引号开始,都是由用户跟着我的程序输入进来的,有可能是日期,有可能是逻辑判断 我把题重新整理一下我要拼接字符串,declare @a int,@b int, @GSResule nvarchare(1000)set @a=3,set @b=4,select @GSResule='select gs from test' --这里面查询出来的变量会有很多个,@GSResule=--这个变量里面的值会有些计算方法还有一些变量,如现在这个值是@a>@b--这个@a与@b这个变量如何运行--如果直接用exec(@GSResule)会提示@a,@b没有申明变量 sp_executesql下面的示例创建并执行一个简单的 SELECT 语句,其中包含名为 @level 的嵌入参数。execute sp_executesql N'select * from pubs.dbo.employee where job_lvl = @level', N'@level tinyint', @level = 35 declare @a int,@b int, @GSResule nvarchare(1000)set @a=3,set @b=4,select @GSResule='select gs from test where gs > @a and gs< @b' exec sp_executesql @GSResule, N'@a int,@b int',@a,@b如要取返回值,加output 求一条可行语句(急) utf-8编码,查询语句成这样了,有关系吗? 面试SQL语句请教. mysql的存储过程,出现错误,大家帮帮忙,新手啊…… 请教一个关于跨数据库插入数据的问题 初学者的简单问题,触发器 单据编号按部门、月份流水号的请教 繁琐的查询条件 触发器问题~~~!!!! SSMS一般都使用哪个版本 关于存储过程中的带@参数语句的调用 求Sql Server2005数据库下载地址
set @b=20;
set @a='select '+ltrim(@b)+'-2';
exec(@a)这样?
set @b=20;
set @a=ltrim(@b-2);
exec('print '+@a);
set @b=20;
set @a=ltrim(@b-2);
exec('print '+@a);
也就是用print @a是显示的是@b-1 这样的值可以直接与申明的值做运行,因为这里面我可能是日期可能是别的类型。declare @a nvarchar(100),@b int;
set @b=20;
set @a='@b-2';
exec(@a)
@a引号开始,都是由用户跟着我的程序输入进来的,有可能是日期,有可能是逻辑判断
我要拼接字符串,
declare @a int,@b int, @GSResule nvarchare(1000)
set @a=3,
set @b=4,select @GSResule='select gs from test' --这里面查询出来的变量会有很多个,
@GSResule=--这个变量里面的值会有些计算方法还有一些变量,如现在这个值是@a>@b
--这个@a与@b这个变量如何运行
--如果直接用exec(@GSResule)会提示@a,@b没有申明变量
下面的示例创建并执行一个简单的 SELECT 语句,其中包含名为 @level 的嵌入参数。
execute sp_executesql
N'select * from pubs.dbo.employee where job_lvl = @level',
N'@level tinyint',
@level = 35
declare @a int,@b int, @GSResule nvarchare(1000)
set @a=3,
set @b=4,
select @GSResule='select gs from test where gs > @a and gs< @b'
exec sp_executesql @GSResule, N'@a int,@b int',@a,@b
如要取返回值,加output