MS-SQL 动态sql使用游标
2010-11-24 20:00
549 查看
CREATE PROCEDURE [dbo].[P_MissiveRights]
-- Add the parameters for the stored procedure here
@UserCode varchar(50)
AS
BEGIN
SET NOCOUNT ON;
declare @UserBiaoShi int
declare @id int
declare @sql0 nvarchar(4000) --sql字符串
declare @sqltmp nvarchar(4000) --临时变量
CREATE Table #RightsTable (
HangBiaoShi int,
ZhongLei int
)
set @sqltmp = 'select @x=BiaoShi from MiMa where User_Code='''+@UserCode+''''
EXECUTE sp_executesql @sqltmp, N'@x int output',@x=@UserBiaoShi output
if @UserBiaoShi>0
begin
declare master_cursor CURSOR FOR
select id from table0
open master_cursor
FETCH NEXT FROM master_cursor into @id
while @@fetch_status = 0
BEGIN
set @sql0='declare senc_cursor cursor for Select * from Table1 '
--declare senc_cursor CURSOR For
exec(@sql0)
open senc_cursor
FETCH NEXT FROM senc_cursor into @HangBiaoShi,@WenJianZhongLei
while @@fetch_status = 0
begin
insert into #RightsTable values (@HangBiaoShi,@WenJianZhongLei)
FETCH NEXT FROM senc_cursor into @HangBiaoShi,@WenJianZhongLei
end
CLOSE senc_cursor
DEALLOCATE senc_cursor
FETCH NEXT FROM master_cursor into @id
END
CLOSE master_cursor
DEALLOCATE master_cursor
end
SELECT * FROM #RightsTable
END
-- Add the parameters for the stored procedure here
@UserCode varchar(50)
AS
BEGIN
SET NOCOUNT ON;
declare @UserBiaoShi int
declare @id int
declare @sql0 nvarchar(4000) --sql字符串
declare @sqltmp nvarchar(4000) --临时变量
CREATE Table #RightsTable (
HangBiaoShi int,
ZhongLei int
)
set @sqltmp = 'select @x=BiaoShi from MiMa where User_Code='''+@UserCode+''''
EXECUTE sp_executesql @sqltmp, N'@x int output',@x=@UserBiaoShi output
if @UserBiaoShi>0
begin
declare master_cursor CURSOR FOR
select id from table0
open master_cursor
FETCH NEXT FROM master_cursor into @id
while @@fetch_status = 0
BEGIN
set @sql0='declare senc_cursor cursor for Select * from Table1 '
--declare senc_cursor CURSOR For
exec(@sql0)
open senc_cursor
FETCH NEXT FROM senc_cursor into @HangBiaoShi,@WenJianZhongLei
while @@fetch_status = 0
begin
insert into #RightsTable values (@HangBiaoShi,@WenJianZhongLei)
FETCH NEXT FROM senc_cursor into @HangBiaoShi,@WenJianZhongLei
end
CLOSE senc_cursor
DEALLOCATE senc_cursor
FETCH NEXT FROM master_cursor into @id
END
CLOSE master_cursor
DEALLOCATE master_cursor
end
SELECT * FROM #RightsTable
END
相关文章推荐
- 删除所有的用户表,存储过程,游标的应用,动态SQL的使用
- ORACLE动态游标及动态SQL使用实例
- 游标变量、动态sql及变量绑定的使用
- 定义游标时使用动态SQL
- 为表添加排序字段 (动态SQL、游标的使用)
- 【原创】定义游标时使用动态SQL语句
- MS SQL Server游标(CURSOR)的学习使用
- 海洋工作室——网站建设专家:MS Sql Server临时表和游标的使用小总结【转】
- function中使用动态sql和游标
- MS SQL Server游标(CURSOR)的学习使用
- MS SQL SERVER 2005 中游标的使用
- MS SQL Server 2000 游标的使用方法
- 如何在定义游标的时候使用动态sql语句
- MS SQL cursor 游标使用
- MS-SQL游标的使用及理解
- oracle pl/sql 入门+ 数组使用+游标+动态SQL
- 在PL/SQL使用游标获取数据及动态SQL
- 学习使用MS SQL Server游标(CURSOR)
- MS-SQL游标的使用及理解
- Sql Server游标使用 exec函数执行动态sql