Задать вопрос
@xXNullXx

Как передать в параметр процедуры результат запроса которые внутри процедуры?

Доброго времени суток!

У меня есть процедура которые добавляет "Организацию"...
CREATE PROCEDURE AddOrganization
	@NameOrg NVARCHAR(50),
	@StatusId INT,
	@Email NVARCHAR(50) = NULL,
	@PhonesNumbers nvarchar(12) = NULL,
	@IdOrganizations INT = null
AS
	INSERT INTO Organizations([Name], StatusId)
	VALUES(@NameOrg, @StatusId)

...и в будущем эта процедура будет добавлять email-ы и номера телефонов этой организации. Но для этого нужно знать "Id" этой организации. Это можно сделать таким запросам:
WITH res AS
(
	SELECT TOP (1) Id
	FROM Organizations
	ORDER BY Id DESC
)
SELECT * FROM res

Но я не знаю как это значение передать в параметр "IdOrganizations"(то есть, чтобы это происходило внутри процедуры)(то есть, чтобы это происходило внутри процедуры) которые находится в процедура "AddOrganization". Как реализовать?
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
CREATE PROCEDURE AddOrganization
  @NameOrg NVARCHAR(50),
  @StatusId INT,
  @Email NVARCHAR(50) = NULL,
  @PhonesNumbers nvarchar(12) = NULL,
  @IdOrganizations INT = NULL  OUTPUT
AS
  INSERT INTO Organizations ( [Name], StatusId )  VALUES ( @NameOrg, @StatusId )
  SELECT @IdOrganizations = MAX( ID ) FROM Organizations -- Это вместо TOP(1)
  SET @IdOrganizations = IDENT_CURRENT ('Organizations') -- Это если Organizations.ID у вас IDENTITY
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы