sql – 如何在存储过程中一次插入两个表?

前端之家收集整理的这篇文章主要介绍了sql – 如何在存储过程中一次插入两个表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Possible Duplicate:
07000

为学校做一个项目所以任何帮助都会非常感谢你!

我有两个表 – 如何插入两个表?所以两个表都是链接的.

第一个表称为Customer,主键称为CID,自动递增

CREATE TABLE [dbo].[Customer](
    [CID] [int] IDENTITY(1,1) NOT NULL,[LastName] [varchar](255) NOT NULL,[FirstName] [varchar](255) NOT NULL,[MiddleName] [varchar](255) NULL,[EmailAddress] [varchar](255) NOT NULL,[PhoneNumber] [varchar](12) NOT NULL        
 CONSTRAINT [PK__CInforma__C1F8DC5968DD69DC] PRIMARY KEY CLUSTERED 
(

第二个名为Employment的表,其外键链接到父表

CREATE TABLE [dbo].[Employment](
    [EID] [int] IDENTITY(1,[CID] [int] NOT NULL,[Employer] [varchar](255) NOT NULL,[Occupation] [varchar](255) NOT NULL,[Income] [varchar](25) NOT NULL,[WPhone] [varchar](12) NOT NULL,CONSTRAINT [PK__Employme__C190170BC7827524] PRIMARY KEY CLUSTERED 
(

解决方法

你需要做这样的事情:
DECLARE @NewID INT

INSERT INTO Customer(LastName,FirstName,......) VALUES(Value1,Value2,.....)

SELECT @NewID = SCOPE_IDENTITY()

INSERT INTO Employment(CID,Employer,.....) VALUES(@NewID,ValueA,..........)

SCOPE_IDENTITY:返回插入同一范围内的标识列的最后一个标识值.范围是一个模块:存储过程,触发器,函数或批处理.因此,如果两个语句在同一存储过程,函数或批处理中,则它们在同一范围内.

猜你在找的MsSQL相关文章