выходной параметр - PullRequest
2 голосов
/ 23 января 2009

как получить выходной параметр из хранимой процедуры одной таблицы и, используя это значение, как вставить данные в другую таблицу, которая находится в реализации этой таблицы?

Ответы [ 4 ]

1 голос
/ 23 января 2009

Когда вы создаете свой объект SqlParameter, присвойте Output его свойству Direction. Затем после выполнения вашего запроса выведите значение параметра в переменную C # и используйте его по своему усмотрению:

SqlParameter newId = new SqlParameter();
newId.Direction = ParameterDirection.Output;
SqlCommand cmd = new SqlCommand();
// ... build your cmd...and add your other parameters as required
cmd.Parameters.Add(newId);
cmd.ExecuteNonQuery();
int outValue = (int)newId.Value;

Затем используйте outValue, чтобы передать его следующему запросу SQL.

0 голосов
/ 23 января 2009

После первой вставки вы захотите что-то вроде этого:

SELECT @parameter_goes_here = SCOPE_IDENTITY()

Что даст вам личность только что введенного ряда. Затем просто используйте это значение в качестве параметра при следующей вставке.

Если вам нужен целый пример ... дайте мне знать

0 голосов
/ 23 января 2009

Вы можете использовать что-то вроде этого:

CREATE PROCEDURE dbo.InsertNewImage
 @ImageTitle nvarchar(30),
 @ImageDescription nvarchar(100),
 @ImageFilename nvarchar(50),
 @ImageThumbnail image,
 @AlbumID int
AS
 Begin

  Set Nocount On

  DECLARE @ImageID int

  INSERT INTO Images(ImageTitle, ImageDescription, ImageFilename, ImageThumbnail)
  VALUES (@ImageTitle, @ImageDescription, @ImageFilename, @ImageThumbnail)

  SELECT @ImageID=@@IDENTITY

  INSERT INTO ImageInAlbum(ImageId, AlbumId)
  VALUES (@ImageID, @AlbumID)

 End

Примечание: используйте SCOPE_IDENTITY () вместо @@ IDENTITY, если вы используете SQL Server 2005 + (я думаю)

0 голосов
/ 23 января 2009

выходной параметр - это просто значение, я не уверен, что понимаю ваш вопрос. Возможно, вы говорите о табличных параметрах SQL Server 2008?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...