Выполняю сценарий ниже.Работа таблицы Temp в SQL Server 2008 R2
declare @id int = 0
while(@id < 10)
begin
declare @tbl as table (id int)
insert into @tbl values(@id)
set @id = @id + 1
SELECT * FROM @tbl
end
Я получаю результат, как показано ниже.
, но этот сценарий должен дать только одну строку каждый раз, когда в таблице темп, потому что температура таблицы объявляя каждый раз в то время цикла, и я вставить только одно значение в таблице.
Я не понимаю этого поведения таблицы темп, пожалуйста, предложите.
Ваш скрипт предоставит все строки, вставленные в таблицу, так как вы используете select * из таблицы –
Возможный дубликат [Переменные таблицы внутри цикла while не инициализируются каждый раз: SQL Server] (http://stackoverflow.com/questions/ 3751096/table-variables-inside-while-loop-not-initializing-everytime-sql-server) – lad2025