2016-09-12 9 views
0

選択クエリで使用する項目の定義済みリストがあります。変数の項目のリストを変数に代入してカーソルを反復するSQL

DECLARE @cur_emp CURSOR; 
DECLARE @TEST_ID int 
DECLARE @TEST_NAME varchar(100) 
DECLARE @names table(name varchar(100)) 

--SET @TEST_NAME = 'Order not timely approved' 
insert into @names(name) values ('a') 
insert into @names(name) values ('b') 

--SET @TEST_NAME = CURSOR FOR (select name from @names) 
WHILE EXISTS (select * from @names) 
BEGIN 
SET @cur_emp= CURSOR FOR (select TEST_ID from CS_TEST_V2 where test_name = @name) 

エラーは言う:@nameは、誰かが助けてくださいすることができ、無効な列名
です。

答えて

1

カーソル部分に構文エラーがあります。これを試してください。

DECLARE @TEST_ID INT 
DECLARE @TEST_NAME VARCHAR(100) 
DECLARE @names TABLE (NAME VARCHAR(100)) 

--SET @TEST_NAME = 'Order not timely approved' 
INSERT INTO @names (NAME) 
VALUES ('a') 

INSERT INTO @names (NAME) 
VALUES ('b') 

DECLARE cur_emp CURSOR 
FOR 
SELECT NAME 
FROM @names; 

OPEN cur_emp 

FETCH NEXT FROM cur_emp 
INTO @TEST_NAME 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    SET @TEST_ID = (
      SELECT TEST_ID 
      FROM CS_TEST_V2 
      WHERE test_name = @TEST_NAME 
      ) 

    FETCH NEXT FROM cur_emp 
    INTO @TEST_NAME 
END 

CLOSE cur_emp 

DEALLOCATE cur_emp 
関連する問題