2 dongfengcool dongfengcool 于 2014.09.23 16:46 提问

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

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;

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Mysql 存储过程查询结果赋值到变量的方法
把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用set或into的方式来实现赋值。示例代码: drop table if exists test_tbl; create table test_tbl (name varchar(20), status int(2)); insert into test_tb
SQL中将select结果赋值给变量
今天给个任务,要求统计一张表中的行数,如果大于1000就执行某操作,但baidu了一上午没找到满意的答案,后来仔细研究select的用法,得到种自认为比较好的方法和大家分享,剩下的就只剩if了 SELECT count(1) into V_count from test_table;
SQL中把查询到值赋值给变量
CREATE PROCEDURE [dbo].[pos_InvoiceDetailAdd150907] @billId VARCHAR(10), @itemNum INT, @item VARCHAR(50), @unitPrice DECIMAL(10,3), @amount DECIMAL(10,3) AS DECLARE @MAXID INT SELECT @MAXID=MA
SQL中将查询结果赋值给变量
昨天写了一个存储过程,想将存储过程的返回值直接赋值给
[MSSQL]将查询结果赋值给变量时使用set与select的区别
/****************** 场景布置 ******************/ DROP TABLE # CREATE TABLE #(OrderId INT) INSERT #(OrderId) VALUES(1) INSERT #(OrderId) VALUES(2) /****************** 角色上场 ******************/ ---
JAVA开发12--将oracle查询结果赋值给JAVA变量
List account_filter=new ArrayList();  //数组         String sql_account_filter = "select distinct object_code as account from inner_table_account where object_source = 'OA_FEE_BUDGET'";         Conne
Mysql存储过程查询结果赋值到变量的方法
Mysql存储过程查询结果赋值到变量的方法   把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用set或into的方式来实现赋值。示例代码:   ? 1 2 3 4 5 6 7 8 9 10 11
PL/SQL里拼接SQL的查询结果赋值给一个变量
写存储过程的时候往往想查一个表,然后从表中取出一个结果当作变量来用,但是表名需要拼接,只能写到v_sql字符串里然后再用EXECUTE IMMEDIATE 执行。可以用 EXECUTE IMMEDIATE v_sql INTO 变量 来获取想要的值   v_sql := 'SELECT MAX(REDODATE)           FROM (SELECT DISTINCT
oracle之存储过程5-查询结果保存到变量中去
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条   记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)     例子:    create or replace procedure test01 is      v_empno number(10);--创建变量,存储员工编号  v_en
存储过程中将sql语句结果赋值给变量
<br />create  procedure procname<br />AS<br />declare @recount int<br />select @recount=count(id) from school<br />--最关键在这句<br />select @recount=count(id) from school<br />select @recount=select count(id) from school -- 错误:这里就不再需要select了<br />set @recount=