Точки останова не соответствуют строке кода при отладке в SQL Server 2008 R2. Иногда при попадании в точки останова не выполняется правильная строка кода. Как это исправить?
declare @SharedTable table(Num int,Name nvarchar(50))
Insert into @SharedTable(Num,Name) values('27149','Vader')
declare @numShared int=0;
select @numShared = COUNT(Num) from @SharedTable
declare @idx_Shared int =1
while @idx_Shared<=@numShared
begin
declare @Num int;declare @Name nvarchar(50)
select @Name=Name,@Num=Num from @SharedTable
declare @AllSharers nvarchar(max)=''
set @AllSharers+=('Num:'+Cast(@Num as nvarchar)+' '+'Name:'+@Name+CHAR(10))
set @idx_Shared+=1
end
print @AllSharers;
Очень простая копия кода из моего запроса. Каждый раз, когда указатель отладки переходит на строку select @Name=Name,@Num=Num from @SharedTable
, он игнорирует приведенный ниже код в цикле while, и с этого момента весь приведенный ниже код и точки останова начинают не совпадать.
Скопируйте его в новый запрос, проблемы все еще есть, но в новом запросе ввели то же самое содержимое, проблема исчезла.