P东风 2014-09-23 08:46
浏览 2487

将查询到的结果分别赋值给不同的变量??

declare @tablename varchar(100)='Bsheet',--示例表
@keyname varchar(80),
@keyname1 varchar(80),
@keyname2 varchar(80),
@keyname3 varchar(80),
@keyname4 varchar(80),
@keyname5 varchar(80),
@i int =0,
@sql1 Nvarchar(1000);

declare C cursor fast_forward READ_ONLY
for
select rtrim(b.name) as Keycolname --这段代码得到这个表所有主键>2
from sysobjects a,syscolumns b ,

(
select g.id,g.colid,g.keyno

from sysindexes f,sysindexkeys g

where f.id = g.id and f.indid = g.indid and f.indid > 0

and f.indid < 255 and (f.status & 2048)<>0
) h
where a.id = b.id

and a.id = object_id(@tablename)
and b.id = h.id

and b.colid = h.colid

order by h.keyno
open C
fetch next from C into @keyname;
while @@FETCH_STATUS =0
begin
set @i = @i+1;
set @sql1=N'set @keyname'+CAST(@i as varchar(8))+'='+@keyname
exec (@sql1);
fetch next from C into @keyname;
end

close C
deallocate C;

select @keyname1,@keyname2,@keyname3,@keyname4,@keyname5

--这个游标就是想实现类似这样的功能:
set @keyname1=@keyname;
set @keyname2=@keyname;
set @keyname3=@keyname;
set @keyname4=@keyname;
set @keyname5=@keyname;

结果他报错了。请问高手如何实现??其他方法不限。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
    • ¥15 win10,这种情况怎么办
    • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
    • ¥100 在连接内网VPN时,如何同时保持互联网连接
    • ¥15 MATLAB中使用parfor,矩阵Removal的有效索引在parfor循环中受限制
    • ¥20 Win 10 LTSC 1809版本如何无损提升到20H1版本
    • ¥50 win10 LTSC 虚拟键盘不弹出
    • ¥30 微信小程序请求失败,网页能正常带锁访问
    • ¥50 CrossLink-LIF-MD6000 型 FPGA 的 CMOS 转 MIPI D-PHY IP 核功能使用异常
    • ¥15 proteus控制16x16LED点阵显示屏的设计