不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
在游标中使用动态SQL(SQL Server2000)
编辑:dnawo 日期:2008-08-01
我们通常使用游标的形式如下:
即结果集部分是固定的,假如我们需要可以任意的修改表名称呢?即要在在游标中使用动态SQL,只需稍加修改即可:
INTO后边可跟随多个变量,msdn中说明如下:
允许将提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果集列的数据类型匹配,或是结果集列数据类型所支持的隐式转换。变量的数目必须与游标选择列表中的列数一致。
复制内容到剪贴板
程序代码

DECLARE @id int
DECLARE rs CURSOR FOR Select top 10 id From Union_User
OPEN rs
FETCH NEXT FROM rs INTO @id
WHILE @@fetch_status=0 BEGIN
print @id
FETCH NEXT FROM rs INTO @id
END
CLOSE rs
DEALLOCATE rs
DECLARE rs CURSOR FOR Select top 10 id From Union_User
OPEN rs
FETCH NEXT FROM rs INTO @id
WHILE @@fetch_status=0 BEGIN
print @id
FETCH NEXT FROM rs INTO @id
END
CLOSE rs
DEALLOCATE rs
即结果集部分是固定的,假如我们需要可以任意的修改表名称呢?即要在在游标中使用动态SQL,只需稍加修改即可:
复制内容到剪贴板
程序代码

DECLARE @id int
DECLARE @strSQL nvarchar(300)
DECLARE @tableName nvarchar(100)
SET @tableName = N'Admin'
SET @strSQL = N'DECLARE rs CURSOR FOR Select top 10 id From ' + @tableName
EXEC SP_EXECUTESQL @strSQL
OPEN rs
FETCH NEXT FROM rs INTO @id
WHILE @@fetch_status=0 BEGIN
print @id
FETCH NEXT FROM rs INTO @id
END
CLOSE rs
DEALLOCATE rs
DECLARE @strSQL nvarchar(300)
DECLARE @tableName nvarchar(100)
SET @tableName = N'Admin'
SET @strSQL = N'DECLARE rs CURSOR FOR Select top 10 id From ' + @tableName
EXEC SP_EXECUTESQL @strSQL
OPEN rs
FETCH NEXT FROM rs INTO @id
WHILE @@fetch_status=0 BEGIN
print @id
FETCH NEXT FROM rs INTO @id
END
CLOSE rs
DEALLOCATE rs
INTO后边可跟随多个变量,msdn中说明如下:
允许将提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果集列的数据类型匹配,或是结果集列数据类型所支持的隐式转换。变量的数目必须与游标选择列表中的列数一致。
评论: 0 | 引用: 0 | 查看次数: 4165
发表评论
请登录后再发表评论!