У меня есть код ниже, и я хочу перебрать таблицу и установить переменную, которая затем может быть использована для обновления поля в другой таблице, но переменная продолжает отображаться как NULL, когда я пытаюсь читать Это. Что я делаю не так?Передача переменной в TSQL
declare @CustId nchar(15)
declare @CustID1 nchar(255)
declare @DateTime1 nchar(25)
declare @finalnote varchar(max)
declare @RowNum int
declare CustList cursor for
select
DateTime, Username, Notes
from tbl_DesignNotes
where OrderNumber = 10645
order by ID
OPEN CustList
FETCH NEXT FROM CustList INTO @DateTime1, @CustId, @CustID1
set @RowNum = 0
WHILE @@FETCH_STATUS = 0
BEGIN
set @RowNum = @RowNum + 1
set @finalnote = @finalnote + ' ' + @DateTime1 + ' ' + @CustId + ' ' + @CustID1;
--select @finalnote
--print @finalnote
select @finalnote as varText;
--print @DateTime1 + ' ' + @CustId + ' ' + @CustID1
FETCH NEXT FROM CustList INTO @DateTime1, @CustId, @CustID1
END
CLOSE CustList
DEALLOCATE CustList
Там есть шанс, что \ @ DateTime1 или \ @CustId или \ @ CustID1 является недействительным, так попытайтесь использовать ISNULL (\ @ DateTime1, GETDATE ()) и т. д. –
Я думаю, что вы можете переписать свой код в один оператор, обновить объем –
Посмотрите [здесь] (http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a- однотекстовая строка) для некоторых методов построения строки из данных в несколько строк без использования [RBAR] (https://www.simple-talk.com/sql/t-sql-programming/rbar--row- by-agonizing-row /). – HABO