Форум: "Базы";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
ВнизМожно ли написать 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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c