Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Можно ли в цикле очищать табличную переменную?  [new]
кириллk
Member

Откуда:
Сообщений: 1058
Вроде if OBJECT_ID('tempdb..#t') IS NOT NULL DROP TABLE #t
4 сен 15, 15:36    [18109315]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в цикле очищать табличную переменную?  [new]
msLex
Member

Откуда:
Сообщений: 8730
кириллk,

Где здесь табличная переменная и при чем здесь цикл?
4 сен 15, 15:38    [18109319]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в цикле очищать табличную переменную?  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Вроде if OBJECT_ID('tempdb..#t') IS NOT NULL DROP TABLE #t

Это же переменная. Можно delete
4 сен 15, 15:39    [18109334]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в цикле очищать табличную переменную?  [new]
кириллk
Member

Откуда:
Сообщений: 1058
Glory,

спасибо
4 сен 15, 15:42    [18109361]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в цикле очищать табличную переменную?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4805
А вот почему он её не очищает сам?


DECLARE @C INT = 10

WHILE @C > 0 
BEGIN 
	SET @C -= 1
	DECLARE @T TABLE(I INT) 

	INSERT INTO @T VALUES(@C)

	SELECT * FROM @T
END 
GO

DECLARE @C INT = 10

WHILE @C > 0 
BEGIN 
	SET @C -= 1
	DECLARE @T TABLE(I INT) 

	INSERT INTO @T VALUES(@C)

	SELECT * FROM @T

	DELETE FROM @T
END 
GO
4 сен 15, 16:07    [18109550]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в цикле очищать табличную переменную?  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
a_voronin
А вот почему он её не очищает сам?
Потому что область действия любой локальной переменной - пакет.
4 сен 15, 16:53    [18109995]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в цикле очищать табличную переменную?  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Только учитывайте, что если в табличной переменной будет много данных то DELETE будет кушать ресурсы и время.
А временной таблице в этом случае можно сделать truncate.
5 сен 15, 22:22    [18113721]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить