Использование процедуры вместо SELECT

BrykAlien
Дата: 07.06.2011 13:33:51
Здраствуйте
Есть несколько процедур, в которых запрос отсеивается по некоторому условию:

---------------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.myproc;3
	@aaa	int
AS
SET NOCOUNT ON
	SELECT
		valueA, 
		valueB, 
		ValueFilter
	FROM 
		tbl_A	
	WHERE 
		ValueFilter NOT IN (	SELECT	ValueFilter 
					FROM  	tbl_Filter
					WHERE 	ValueFilter IS NULL	)
GO

-----------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.myproc;5
	@aaa	int,
	@bbb	int
AS
SET NOCOUNT ON
	SELECT
		valueX, 
		valueY, 
		ValueFilter
	FROM 
		tbl_B	
	WHERE 
		ValueFilter NOT IN (	SELECT	ValueFilter 
					FROM  	tbl_Filter
					WHERE 	ValueFilter IS NULL	)
GO
Можно ли сделать процедуру вида:
---------------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.myproc;100500
AS
SET NOCOUNT ON
	SELECT	ValueFilter 
	FROM  	tbl_Filter
	WHERE 	ValueFilter IS NULL	
GO
И использовать её вместо SELECT'а
---------------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.myproc;3
	@aaa	int
AS
SET NOCOUNT ON
	SELECT
		valueA, 
		valueB, 
		ValueFilter
	FROM 
		tbl_A	
	WHERE 
		ValueFilter NOT IN (exec dbo.myproc;100500)
GO
(Конечно же так как я написал в последнем примере- не работает, ошибка синтаксиса)
Glory
Дата: 07.06.2011 13:58:48
Процедуры в SELECT использовать нельзя
Пишите функции
Уленшпигель
Дата: 07.06.2011 14:00:19
BrykAlien,

как вы уже убедились - нельзя. зато можно создать представление или табличную функцию. табличная функция может быть даже с параметрами.
BrykAlien
Дата: 07.06.2011 14:08:14
Уленшпигель,

Спасибо! Я что-то зациклился на этих процедурах... :)
UV
Дата: 07.06.2011 16:37:09
Glory
Процедуры в SELECT использовать нельзя
Пишите функции


Абсолютно не согласен. Glory, прочитайте больше об UDF и потом рекомендуйте.
Glory
Дата: 07.06.2011 16:40:50
UV
Glory
Процедуры в SELECT использовать нельзя
Пишите функции


Абсолютно не согласен. Glory, прочитайте больше об UDF и потом рекомендуйте.

Тогда приведите решение с использованием процедур в запросах
Гавриленко Сергей Алексеевич
Дата: 07.06.2011 16:41:38
UV
Абсолютно не согласен. Glory, прочитайте больше об UDF и потом рекомендуйте.
Где почитать и что? Мне тоже стало вдруг интересно, может я зря их использую последние ндцать лет и надо быстро-быстро все переписть на что-нибудь другое?
flexgen
Дата: 07.06.2011 17:41:34
UV
Абсолютно не согласен. Glory, прочитайте больше об UDF и потом рекомендуйте.


UDF - это User-Defined Function. Так с чем Вы там не согласны?
UV
Дата: 08.06.2011 15:56:12
flexgen
UV
Абсолютно не согласен. Glory, прочитайте больше об UDF и потом рекомендуйте.


UDF - это User-Defined Function. Так с чем Вы там не согласны?


Glory написал "Пишите функции" - не согласен, что лучше UDF чем SP. UDF имеют очень, ограниченое приложение и в етом случае SP на много раз лучше. Обеснять почему будеть очень долго.
Гавриленко Сергей Алексеевич
Дата: 08.06.2011 15:59:31
UV
Glory написал "Пишите функции" - не согласен, что лучше UDF чем SP. UDF имеют очень, ограниченое приложение и в етом случае SP на много раз лучше. Обеснять почему будеть очень долго.
Вы просто не умеете их готовить. Да, бывает хуже. Да, бывает вообще хрен функцию напишешь. Глори же не сказал, "пишите функции и отключайте моск".

Так что ваша категоричность без аргументов, которые вам лень приводить, смотрится как минимум неуместно.