日期:2014-05-17  浏览次数:20408 次

关于一个很简单的SQL基础问题,会的说下,万分感谢
我想在存储过程中执行一条语句,然后把语句执行的结果,给该存储过程中的下一个语句当参数使用,该怎么做 ?下面是个例子:但是不知道怎么把结果赋给下一个语句。。。
if exists (select Id from sysobjects where name='Proc_ceshi')
drop proc Proc_ceshi
go

create proc Proc_ceshi
as
begin
declare @sql nvarchar(1000)
set @sql='select top 1 id from PAS_NewsInfo order by PublishTime DESC'
 exec(@sql)//这里执行 
 declare @sqltwo nvarchar(1000)
 set @sqltwo='select * from PAS_NewsInfo where Id='+rtrim(@sql)+'' 这里该怎么调用上个语句执行的值
print(@sqltwo)
end
go

------解决方案--------------------
SQL code
--如果id是主键的话,你要的结果和这个是一样的:
select top 1 * from PAS_NewsInfo order by PublishTime desc

------解决方案--------------------
探讨
比如我想更新数据库中前后两条数据,让他们对调位置, 在存储过程中进行操作,只需要传递一个ID,然后查询他的上一个ID或下一个Id的信息,然后更新信息 但是怎么存储查询到的数据,就好像c#中变量a和变量b值对调一样,需要定义一个中间变量。这里的问题就是在存储过程中怎么定义一个中间变量,并把查询的值赋给它