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

Вниз

Можно ли написать select из процедуры в MS SQL 2000?   Найти похожие ветки 

 
oleon   (2003-01-13 12:23) [0]

Как можно написать запрос такого рода?
select * from Table1 where ID in (select ID from <процедура>...

В InterBase такая возможность была сто пудов...
А в MS SQL 2000 можно так извратиться?


 
Delirium ©   (2003-01-13 12:40) [1]

В чистом виде нет. Существует конструкция:
insert MyTable
exec MyProc

Однако тут очевиден недостаток - необходимо заранее знать структуру получаемых данных. Есть ещё один подход:
select * from OpenQuery(MyServer, "exec MyProc")


 
BlackTiger   (2003-01-14 00:38) [2]

А еще лучше (если возможно, конечно) использовать вместо хранимой процедуры table-функцию.


 
ЮЮ ©   (2003-01-14 03:59) [3]

в MS SQL 2000 есть UDF, которые можно использовать в запросах как таблицы:

CREATE FUNCTION dbo.StudyPlanFaculties()
RETURNS @StudyPlanFaculties TABLE ( CODE int )
AS
BEGIN
...
END

CREATE VIEW dbo.V_StudyPlans
AS
SELECT *
FROM dbo.U_StudyPlans
WHERE dbo.U_StudyPlans.Faculty in (SELECT CODE FROM StudyPlanFaculties()) and (Signed is null)
WITH CHECK OPTION


 
oleon   (2003-01-14 18:10) [4]

Дело в том, что нужно в зависимости от входного параметра типа Varchar (имя таблицы) формировать строку запроса и потом написать execute(@S), а в функции execute писать нельзя... поэтому хотелось сделать это все в процедуре...



Страницы: 1 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
8-96885
psv
2002-10-15 15:33
2003.01.30
Движение лоттотрона


8-96889
btv
2002-10-14 11:23
2003.01.30
*.ico & *.bmp


14-96953
cc43294
2003-01-12 14:27
2003.01.30
Почта


4-97086
VL
2002-12-16 11:24
2003.01.30
Подскажите, как преобразовать скан-код нажатой клавиши


3-96628
Kurt_
2003-01-14 09:40
2003.01.30
Обьясните плиз что значит значение для CursorType (АДО) - OpenFor