2016-09-12 3 views
0

У меня есть предопределенный список элементов, которые я хочу использовать в select query.Назначить список элементов переменной и итерации в курсоре 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 
Смежные вопросы