如何从一个表的存储过程中获取输出参数,并使用该值如何在与该表相关的另一个表中插入数据?
答案 0 :(得分:1)
创建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查询。
答案 1 :(得分:0)
输出参数只是一个值,我不确定我理解你的问题。您是在讨论SQL Server 2008表值参数吗?
答案 2 :(得分:0)
第一次插入后,你会想要这样的东西:
SELECT @parameter_goes_here = SCOPE_IDENTITY()
这将为您提供刚刚输入的行的标识。然后在下一个插入中使用该值作为参数。
如果你需要一个完整的例子......请告诉我
答案 3 :(得分:0)
您可以使用以下内容:
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
注意:如果您使用的是SQL Server 2005 +(我认为),请使用SCOPE_IDENTITY()而不是@@ IDENTITY