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

Откуда:
Сообщений: 21
Как запустить хранимую процедуру, типа:

CREATE PROCEDURE a1
AS
SELECT * INTO #Temp FROM Table
SELECT * FROM #Temp
GO

Через параметр:

SET FMTONLY ON
EXEC a1
SET FMTONLY OFF

Если так запускаем в QA, то вылазит ошибка:
Server: Msg 208, Level 16, State 1, Procedure a1, Line 5
Invalid object name '#Temp'.

Как это обойти? или
Как, вообще протестировать ХП, на ошибки...
19 мар 03, 03:36    [150748]     Ответить | Цитировать Сообщить модератору
 Re: Temp таблицы и FMTONLY...  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А эта ошибка вылезит и если таблица невременная. SELECT INTO создает таблицу только если возвращается хотя бы одна запись. Попробуй например оттестировать код:
SELECT TOP 0 * INTO Table_1 FROM Table

SELECT * FROM Table_1
19 мар 03, 06:35    [150759]     Ответить | Цитировать Сообщить модератору
 Re: Temp таблицы и FMTONLY...  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31603
SELECT INTO создает таблицу даже если не возвращается ни одной записи.
Вот у меня всё работает:

CREATE PROCEDURE a1
AS
select * into #tmp from sysobjects where 1=0
select * from #tmp
GO
SET FMTONLY ON
EXEC a1
SET FMTONLY OFF
19 мар 03, 09:43    [150857]     Ответить | Цитировать Сообщить модератору
 Re: Temp таблицы и FMTONLY...  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Server: Msg 208, Level 16, State 1, Procedure a1, Line 5
Invalid object name '#Temp'.


Я могу посоветовать только не использовать "SET FMTONLY ON" с такими процедурами. MS здесь опять прошляпилась и, что самое поскудное, не признается.
19 мар 03, 10:22    [150909]     Ответить | Цитировать Сообщить модератору
 Re: Temp таблицы и FMTONLY...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Как это обойти? или
Как, вообще протестировать ХП, на ошибки...


Может быть лучше использовать SET PARSEONLY ?
19 мар 03, 10:24    [150915]     Ответить | Цитировать Сообщить модератору
 Re: Temp таблицы и FMTONLY...  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Если вместо временных таблиц использовать переменные-таблицы, то ошибок с "SET FMTONLY ON" не случается. Только вместо select into придется делать declare и insert
19 мар 03, 10:27    [150917]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить