выбор столбцов из таблицы с помощью курсора

#sql-server

#sql-сервер

Вопрос:

Для каждого элемента (фактически значения «ut» в коде), выбранного из таблицы #pub, я хочу создать несколько таблиц на основе этого значения «ut», а затем, если будут выполнены некоторые критерии, я напечатаю это «ut». Но в моем коде SQL Server есть некоторые ошибки, показанные ниже.

 select ut
into #pub
from wosclassification1813..clustering
where cluster_id1 = 145

DECLARE @temp_ut NVARCHAR(MAX);
DECLARE @citation_count INT;
DECLARE @dccp_count INT;
DECLARE @temp_string_1 NVARCHAR(MAX);
DECLARE @temp_string_2 NVARCHAR(MAX);
DECLARE @i INT;
SET @i = 1;
DECLARE @j INT;
SET @j = 0;
DECLARE @n INT;
SET @n = (select count(*) from #pub);

Declare Cur Cursor For select ut from #pub
Open Cur
Fetch next From Cur Into @temp_ut    
WHILE @j < @n
Begin
    SET @temp_string_1 = (CONVERT(NVARCHAR, @i))
    EXEC('select s_ut as ut into @temp_string_1 from woskb.dbo.cwts_pairs where c_ut = @temp_ut')
    SET @temp_string_2 = (CONVERT(NVARCHAR, @i))
    EXEC('select a.c_ut as c_ut, a.s_ut as s_ut into temp_string_2 from woskb.dbo.cwts_pairs as a join @temp_string_1 as b on a.c_ut = b.ut join @temp_string_1 as c on a.s_ut = c.ut')
    SET @dccp_count = (select count(*) from #dccp)
    SET @citation_count = (select count(*) from #citing_pub)
    SET @i = @i   1
    SET @j = @j   1
    if @dccp_count = @citation_count*(@citation_count-1)/2
        print @temp_ut
    Fetch Next From Cur Into @temp_ut
End   
Close Cur   
Deallocate Cur
  

Комментарии:

1. привет @gary, пожалуйста, добавьте исключение к своему сообщению.

2. что на самом деле не удается? и еще, почему динамический sql? более чем вероятно, что переменная в вашей строке не находится в области видимости и не будет работать должным образом. Я бы посоветовал прочитать эту статью о подводных камнях динамического sql. sommarskog.se/dynamic_sql.html