Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Временные таблицы в функциях   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
1-1097774010
fess
2004-10-14 21:13
2004.10.31
MS Equation в Delphi


4-1096049657
Justas
2004-09-24 22:14
2004.10.31
Окно произвольной формы


6-1093256653
Nolf
2004-08-23 14:24
2004.10.31
Отправка писем (файлов).


14-1097077567
Leksiy
2004-10-06 19:46
2004.10.31
Глюк


14-1097429513
Knight
2004-10-10 21:31
2004.10.31
Как вы думаете кто смотрит мульты типа...