SQL存储过程中怎样给变量赋值?
createprocfuction_View@countintasdeclare@strsqlnvarchar(1000)declare@s_idint@strsql='...
create proc fuction_View
@count int
as
declare @strsql nvarchar(1000)
declare @s_id int
@strsql ='select top 1 s_id from (select top ' + @count + ' s_id from PageIndex order by s_id ) aa order by s_id desc'
exec(@strsql)
-----这里我想把exec(@strsql)得出来的值赋值给变量@s_id,应该怎么写呢?谢谢!
go
因为我听说游标会影响执行效率,所认没用,如果用游标能说具体点吗?我对这个用的少,大家多一些人想想解决方案啊,在这里形成一个总结,我想这个问题是很容易遇到的常见问题吧?我刚才不用游标已经做出来了,我的方法将会告诉给最佳答案者!
呵呵,set @id=exec(@strsql)是会报语法错误的,至于回答3楼说的:exec 和 exec()是有区别的,exec加上括号,括号里面写变量名,变量名可以写SQL语句,exec(赋于了SQL语句的变量) 就是执行这句SQL了。 展开
@count int
as
declare @strsql nvarchar(1000)
declare @s_id int
@strsql ='select top 1 s_id from (select top ' + @count + ' s_id from PageIndex order by s_id ) aa order by s_id desc'
exec(@strsql)
-----这里我想把exec(@strsql)得出来的值赋值给变量@s_id,应该怎么写呢?谢谢!
go
因为我听说游标会影响执行效率,所认没用,如果用游标能说具体点吗?我对这个用的少,大家多一些人想想解决方案啊,在这里形成一个总结,我想这个问题是很容易遇到的常见问题吧?我刚才不用游标已经做出来了,我的方法将会告诉给最佳答案者!
呵呵,set @id=exec(@strsql)是会报语法错误的,至于回答3楼说的:exec 和 exec()是有区别的,exec加上括号,括号里面写变量名,变量名可以写SQL语句,exec(赋于了SQL语句的变量) 就是执行这句SQL了。 展开
4个回答
展开全部
create proc fuction_View
@count int
as
declare @strsql nvarchar(1000)
declare @s_id int
@strsql ='select top 1 @id=s_id from (select top ' + @count + ' s_id from PageIndex order by s_id ) aa order by s_id desc'
execute sp_executesql @strsql,N'@id int out',@id=@s_id out
go
@count int
as
declare @strsql nvarchar(1000)
declare @s_id int
@strsql ='select top 1 @id=s_id from (select top ' + @count + ' s_id from PageIndex order by s_id ) aa order by s_id desc'
execute sp_executesql @strsql,N'@id int out',@id=@s_id out
go
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用游标吧,cursor,先declare,然后循环的fetch into 到s_id
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-12-19
展开全部
exec 是执行存储过程的命令,不能作为存储过程名
而且你这个似乎是希望用变量转换成SQL命令,不是这样用法的
而且你这个似乎是希望用变量转换成SQL命令,不是这样用法的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是直接set @id=exec(@strsql)么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询