我正在创建将从我的 C# 应用程序调用的存储过程,并将主/详细信息输入 SQL Server。在标题表上我有TransactionId
作为身份列,以便我每次插入时都会获得唯一的 ID。当我调用详细信息表的存储过程时,我想使用标头中的 PK ID 并将其插入详细信息的 FK 中。确保取回刚刚在标头表中创建的 ID 的最佳方法是什么?
CREATE TABLE [dbo].[Header835]
(
[TRANSACTIONID] [int] IDENTITY(1, 1) NOT NULL
, [FILENAME] [varchar](80) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
, [TRADINGPARTNERNAME] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
, [ISACRTL] [numeric](18, 0) NOT NULL
, [STCRTL] [numeric](18, 0) NOT NULL
, CONSTRAINT [PK_Header835] PRIMARY KEY CLUSTERED
(
[TRANSACTIONID] ASC
) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
你会想要使用范围_身份() http://msdn.microsoft.com/en-us/library/ms190315.aspx
DECLARE @headerTransactionId INT;
INSERT INTO dbo.Header835(Filename, TradingPartnerName, IsACrtl, StCrtl)
SELECT 'myFile.txt', 'Joe', 103, 123;
SELECT @headerTransactionId = SCOPE_IDENTITY();
SQL小提琴 http://sqlfiddle.com/#!3/b3028/3/0 Example
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)