SQL SERVER 拼字符串方式 动态表名 游标变量范例
2011-04-14 01:34
295 查看
存储过程1:
CREATE PROCEDURE [dbo].[pro_get_cursor]
@In_TableName nvarchar(200),
@Out_CurrencyCursor CURSOR VARYING OUTPUT
AS
declare @sql nvarchar(2000)
set @sql=N'DECLARE CurrencyCursor CURSOR
FORWARD_ONLY STATIC FOR
SELECT * FROM '+@In_TableName
EXEC(@sql)
OPEN CurrencyCursor;
SET @Out_CurrencyCursor = CurrencyCursor;
存储过程2:(调用存储过程1)
CREATE PROCEDURE [dbo].[pro_test_c]
AS
BEGIN
DECLARE @MyCursor CURSOR;
declare @str1 varchar(100)
declare @str2 varchar(100)
declare @str3 varchar(100)
declare @str4 nvarchar(100)
declare @str5 nvarchar(100)
declare @i int=1
EXEC dbo.pro_get_cursor '表名',@Out_CurrencyCursor = @MyCursor OUTPUT;
FETCH NEXT FROM @MyCursor into @str1,@str2,@str3,@str4,@str5
WHILE (@@FETCH_STATUS = 0)
BEGIN;
print convert(nvarchar(5),@i)
set @i= @i+1
FETCH NEXT FROM @MyCursor into @str1,@str2,@str3,@str4,@str5
END;
CLOSE @MyCursor;
DEALLOCATE @MyCursor
--注意此处: 调用存储过程1的游标的不能再次CLOSE,只能催毁对像。否则异常发生。
--CLOSE CurrencyCursor
DEALLOCATE CurrencyCursor
--以下代码可以用来查看游标的列表
--DECLARE @Report CURSOR
-- Execute sp_cursor_list into the cursor variable.
--EXEC master.dbo.sp_cursor_list @cursor_return = @Report OUTPUT,
-- @cursor_scope = 3
---- Fetch all the rows from the sp_cursor_list output cursor.
--FETCH NEXT from @Report
--WHILE (@@FETCH_STATUS <> -1)
--BEGIN
-- FETCH NEXT from @Report
--END
--CLOSE @Report
--DEALLOCATE @Report
END
CREATE PROCEDURE [dbo].[pro_get_cursor]
@In_TableName nvarchar(200),
@Out_CurrencyCursor CURSOR VARYING OUTPUT
AS
declare @sql nvarchar(2000)
set @sql=N'DECLARE CurrencyCursor CURSOR
FORWARD_ONLY STATIC FOR
SELECT * FROM '+@In_TableName
EXEC(@sql)
OPEN CurrencyCursor;
SET @Out_CurrencyCursor = CurrencyCursor;
存储过程2:(调用存储过程1)
CREATE PROCEDURE [dbo].[pro_test_c]
AS
BEGIN
DECLARE @MyCursor CURSOR;
declare @str1 varchar(100)
declare @str2 varchar(100)
declare @str3 varchar(100)
declare @str4 nvarchar(100)
declare @str5 nvarchar(100)
declare @i int=1
EXEC dbo.pro_get_cursor '表名',@Out_CurrencyCursor = @MyCursor OUTPUT;
FETCH NEXT FROM @MyCursor into @str1,@str2,@str3,@str4,@str5
WHILE (@@FETCH_STATUS = 0)
BEGIN;
print convert(nvarchar(5),@i)
set @i= @i+1
FETCH NEXT FROM @MyCursor into @str1,@str2,@str3,@str4,@str5
END;
CLOSE @MyCursor;
DEALLOCATE @MyCursor
--注意此处: 调用存储过程1的游标的不能再次CLOSE,只能催毁对像。否则异常发生。
--CLOSE CurrencyCursor
DEALLOCATE CurrencyCursor
--以下代码可以用来查看游标的列表
--DECLARE @Report CURSOR
-- Execute sp_cursor_list into the cursor variable.
--EXEC master.dbo.sp_cursor_list @cursor_return = @Report OUTPUT,
-- @cursor_scope = 3
---- Fetch all the rows from the sp_cursor_list output cursor.
--FETCH NEXT from @Report
--WHILE (@@FETCH_STATUS <> -1)
--BEGIN
-- FETCH NEXT from @Report
--END
--CLOSE @Report
--DEALLOCATE @Report
END
相关文章推荐
- SQL SERVER 拼字符串方式 固定表名 游标变量范例
- 17、SQL Server:动态SQL拼接字符串,使用变量,函数等5
- SQL SERVER 游标与字符串分割
- SQL Server执行动态SQL正确方式
- SQL----动态SQL,连接字符串与变量的问题
- SQL server 动态SQL对变量讲行赋值
- [SQL Server] 动态sql给变量赋值(或返回值给变量)
- 关于sql server动态获取数据库下所有表以及游标的简单使用
- SQL Server 字符串分割 自定义函数 以及执行方式
- js 动态创建一个变量,以字符串形式定义变量,定义对象
- 在PL/SQL中使用游标、动态sql和绑定变量的小例子
- bash的变量中存放的字符串的处理方式
- sql server变量赋值的两种方式
- Sql Server游标使用 exec函数执行动态sql
- SQL Server 游标运用:鼠标轨迹字符串分割
- 关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存
- sql server游标的Cursor for后面使用变量
- plsql: 动态sql && 游标变量
- C++中RTTI动态类型识别、静态成员、变量的四种存储方式
- java oracle存储过程/函数(2):字符串数组传出存储过程,动态sql如何fetch到游标