yadianna 发表于 2016-10-30 05:58:16

SQL Server中动态SQL返回值

CREATE PROCEDURE pri_user @mname varchar(50),@uname varchar(50),@pname varchar(20),@pri bit=0 outputas
begin
declare cur_uname cursor for select groupID from member where userName=@uname
declare @gid int
open cur_uname
fetch next from cur_uname into @gid
declare cur_mname cursor for select moduleID from module where moduleName=@mname
declare @mid int
open cur_mname
fetch next from cur_mname into @mid
declare @sql nvarchar(1000)
declare @value bit
set @sql=N'select @value=isnull(['+@pname+N'],0) from access where moduleID='+convert(varchar(1000),@mid)+N' and groupID='+convert(varchar(1000),@gid)
exec sp_executesql @sql,N'@value bit OUTPUT',@value output
set @pri=convert(int,@value)
close cur_uname
deallocate cur_uname
close cur_mname
deallocate cur_mname
return @@Fetch_Status
end
页: [1]
查看完整版本: SQL Server中动态SQL返回值