Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
3-96584
Sedunov Vitaly
2003-01-13 11:04
2003.01.30
Как DBGridEh определить позицию относительно экрана?


3-96519
AVovik
2003-01-14 15:34
2003.01.30
Кто знает откуда берется эта messag


1-96865
Alex S
2003-01-20 11:17
2003.01.30
Quick Report


1-96649
Муть
2003-01-20 13:56
2003.01.30
Listbox с элементами переменной высоты


6-96925
Свой
2002-12-03 19:21
2003.01.30
ras и телефоны




   Наверх