关于光标的问题!救命啊! 不是存储过程返回的!直接就在存储过程内部的,在存储过程内部处理数据的分析!这个不是,运行存贮过程的命令阿!execute sp_executesql我现在写的不是存贮过程,,无法直接指定的!怎么办啊!我要哭了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思!我搞错了!sp_executesql它是一个存贮过程!但是如何动态的生成一个光标阿!因为我的数据库名,表名都是动态生成的,无法直接指定的!怎么办啊? /*就是下面的这个意思我如何动态创建光标,比如我的表名是动态生成的如@t,那么那个SQL语句写呢?现在问题是要用光标来实现*/Declare @t nvarchar(10);DECLARE @CursorVar CURSORset @t = 'titles';SET @CursorVar = CURSOR SCROLL DYNAMIC FOR SELECT * FROM @t;DEALLOCATE @CursorVar; 建议你看看数据库帮助SQL SERVER动态创建的同样可以用普通方法获得游标。 数据库帮助SQL SERVER动态创建的同样可以用普通方法获得游标?我找了!没找到阿!哎呀!能帮我运行一下这个SQL吗?Use pubs;DECLARE @s_cursor CURSOR;DECLARE @SQL_Select nvarchar(1024);set @SQL_Select = N'DECLARE my_cursor CURSOR GLOBAL FOR Select * From titles';execute sp_executesql @SQL_Select;execute sp_executesql N'Set @cursor = my_cursor', N'@cursor CURSOR OUTPUT', @cursor = @s_cursor OUTPUT;execute sp_executesql N'DEALLOCATE my_cursor';OPEN @s_cursor;--CLOSE @s_cursor;DEALLOCATE @s_cursor;-----------------------------------------------------------返回消息:-----------------------------------------------------------服务器: 消息 16950,级别 16,状态 2,行 15当前没有为变量 '@s_cursor' 分配游标。服务器: 消息 16950,级别 16,状态 2,行 17当前没有为变量 '@s_cursor' 分配游标。-----------------------------------------------------------表示光标并没有被成功获取阿!怎么办呢!乌~~~~~~~~! 去SQL SERVER 版块找大力问问。 该问题已解决,看是不是你想要的结果:Use pubs;DECLARE @s_cursor CURSOR;DECLARE @SQL_Select nvarchar(1024);set @SQL_Select = N'DECLARE my_cursor CURSOR GLOBAL FOR Select * From titles';execute sp_executesql @SQL_Select;OPEN my_cursor;-----应在此处打开游标execute sp_executesql N'Set @cursor = my_cursor', N'@cursor CURSOR OUTPUT', @cursor = @s_cursor OUTPUT;execute sp_executesql N'DEALLOCATE my_cursor';CLOSE @s_cursor;DEALLOCATE @s_cursor; yown(yong) 何方神圣?我爱死你了!分数全部给你了!不够的话说,我给你!你还厉害了! sql批量生成表 DATEADD函数的毫秒问题 SQL语句合并优化求助 sql操作字符串统计 关于一个仓库问题的触发器 在SQL Server 2005中创建了一个数据库,怎么样实现数据的增量更新导入呢? 触发器问题,帮帮忙 【急】如何通过VS2005来生成一个表的创建脚本? 一台服务器装了SQL 2000和 MY SQL 会有冲突么??? SQL Server出现10057错误该怎么办? 动态SQL exec2 SQL语句问题
但是
如何动态的生成一个光标阿!因为我的数据库名,表名都是动态生成的,无法直接指定的!
怎么办啊?
就是下面的这个意思
我如何动态创建光标,比如我的表名是动态生成的如@t,那么那个SQL语句写呢?现在问题是要用光标来实现
*/
Declare @t nvarchar(10);
DECLARE @CursorVar CURSORset @t = 'titles';
SET @CursorVar = CURSOR SCROLL DYNAMIC FOR SELECT * FROM @t;DEALLOCATE @CursorVar;
我找了!没找到阿!哎呀!能帮我运行一下这个SQL吗?
Use pubs;
DECLARE @s_cursor CURSOR;
DECLARE @SQL_Select nvarchar(1024);
set @SQL_Select = N'DECLARE my_cursor CURSOR GLOBAL FOR Select * From titles';execute sp_executesql @SQL_Select;execute sp_executesql
N'Set @cursor = my_cursor',
N'@cursor CURSOR OUTPUT',
@cursor = @s_cursor OUTPUT;execute sp_executesql N'DEALLOCATE my_cursor';OPEN @s_cursor;
--CLOSE @s_cursor;
DEALLOCATE @s_cursor;
-----------------------------------------------------------
返回消息:
-----------------------------------------------------------
服务器: 消息 16950,级别 16,状态 2,行 15
当前没有为变量 '@s_cursor' 分配游标。
服务器: 消息 16950,级别 16,状态 2,行 17
当前没有为变量 '@s_cursor' 分配游标。
-----------------------------------------------------------
表示光标并没有被成功获取阿!
怎么办呢!
乌~~~~~~~~!
Use pubs;
DECLARE @s_cursor CURSOR;
DECLARE @SQL_Select nvarchar(1024);
set @SQL_Select = N'DECLARE my_cursor CURSOR GLOBAL FOR Select * From titles';execute sp_executesql @SQL_Select;
OPEN my_cursor;-----应在此处打开游标execute sp_executesql
N'Set @cursor = my_cursor',
N'@cursor CURSOR OUTPUT',
@cursor = @s_cursor OUTPUT;execute sp_executesql N'DEALLOCATE my_cursor';
CLOSE @s_cursor;
DEALLOCATE @s_cursor;
我爱死你了!
分数全部给你了!
不够的话说,我给你!你还厉害了!