Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизВременные таблицы в функциях Найти похожие ветки
← →
NewDelpher © (2004-10-04 15:35) [0]MS SQL не разрешает создавать временные таблицы в хранимых функциях, а у меня есть запрос, использующий временные таблицы и мне нужно его поместить в функцию. В Stored Procedure такое возможно, но как сделать, чтобы она возвращала таблицу?..
← →
Fay © (2004-10-04 15:39) [1]>> MS SQL не разрешает создавать временные таблицы в хранимых функциях
Это очень спорное утверждение. Откуда такая информация? Вы сами проверяли? Думаю, нет.
← →
Ega23 © (2004-10-04 15:41) [2]Она тебе набор данных возвратит.
1. Можешь временные таблицы ##ttt типа использовать - они "живут" пока сервер не перезапустят
2. Можешь временные таблицы #ttt типа использовать, если всё в рамках одной транзакции.
← →
NewDelpher © (2004-10-04 15:50) [3]в функции пишу:
SELECT number INTO #tmp_numbs
FROM mytable WHERE status= 1 and datenumb = @date_numb
при проверке синтаксиса
выдает:
Cannot accsess temporary tables from within a function
← →
Polevi © (2004-10-04 15:50) [4]>MS SQL не разрешает создавать временные таблицы в хранимых функциях
не разрешаются DDL выражения,
заменяй CREATE TABLE #T(...) на DECLARE @T TABLE (..)
← →
NewDelpher © (2004-10-04 15:58) [5]
> не разрешаются DDL выражения,
> заменяй CREATE TABLE #T(...) на DECLARE @T TABLE (..)
тогда так мой запрос будет выглядеть:
SELECT number INTO @tmp_numbs
FROM mytable WHERE status= 1 and datenumb = @date_numb
← →
Fay © (2004-10-04 16:03) [6]Почему бы не почитать BOL?
← →
NewDelpher © (2004-10-04 16:08) [7]
> Fay © (04.10.04 16:03) [6]
> Почему бы не почитать BOL?
Почитал, только не понял, их удалять получается не надо при выходе из функции?
← →
Nikolay M. © (2004-10-04 16:14) [8]
> Почитал, только не понял, их удалять получается не надо
> при выходе из функции?
@T TABLE (..) - это не таблица, а переменные табличного типа, поэтому удалять их не нужно.
← →
NewDelpher © (2004-10-04 16:17) [9]спасибо, разобрался
← →
Polevi © (2004-10-04 16:24) [10]>Nikolay M. © (04.10.04 16:14) [8]
нет таблица :)
← →
Nikolay M. © (2004-10-04 17:25) [11]
> Polevi © (04.10.04 16:24) [10]
Аргументы? DECLARE @T TABLE (...) просто по конструкции декларирует переменную и в БОЛ о DECLARE TABLE написано:
Defines the table data type. The table declaration includes column definitions, names, data types, and constraints. The only constraint types allowed are PRIMARY KEY, UNIQUE KEY, NULL, and CHECK.
← →
Polevi © (2004-10-05 11:27) [12]внутрях все равно это временная таблица
DECLARE @T TABLE (ID INT PRIMARY KEY CLUSTERED)
INSERT @T SELECT 1
INSERT @T SELECT 1
← →
Nikolay M. © (2004-10-05 11:36) [13]
> Polevi © (05.10.04 11:27) [12]
Где конкретно внутрях? В оперативке? В темпдб не увидел.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c