Обнаружил сегодня странную вещь на своем MSSQL.
Вот такой вот код выдает результат "Rifts 1", вместо 1 может быть цифра от 0 до 3 случайным образом.
Хотя должен выдавать "Rifts NULL".
Если убрать into #ExpTables, identity(1,1) или вместо tb.id написать tb.id+0 - начинает выдавать все правильно.
Подскажите пожалуйста как такое может быть? Сломал голову напрочь.
Версия SQL 9.00.5324.00 (X64) Standard Edition (64-bit)
Вот такой вот код выдает результат "Rifts 1", вместо 1 может быть цифра от 0 до 3 случайным образом.
Хотя должен выдавать "Rifts NULL".
Если убрать into #ExpTables, identity(1,1) или вместо tb.id написать tb.id+0 - начинает выдавать все правильно.
Подскажите пожалуйста как такое может быть? Сломал голову напрочь.
create table TTables(ID int not null identity(1,1),NAME varchar(200) not null); declare @xml xml; select @xml='<Table><NAME>Rifts</NAME></Table>'; select T.c.value('NAME[1]','varchar(200)') as NAME, tb.id as TID into #ExpTables from @xml.nodes('/Table') AS T(c) left join TTables tb on tb.name=T.c.value('NAME[1]','varchar(200)'); select * from #ExpTables; drop table #ExpTables; drop table TTables;
Версия SQL 9.00.5324.00 (X64) Standard Edition (64-bit)