[英]Insert into two tables at the same time insert new record
我有兩個要在數據庫中使用的SQL Server表。
這是我的表VMA_VehicleDetails_TB
:
CREATE TABLE [dbo].[VMA_VehicleDetails_TB]
(
[VehRegID] INT IDENTITY (1000, 2) NOT NULL,
[TraPNumber] NVARCHAR (60) NOT NULL,
[VehOwner] NVARCHAR (60) NOT NULL,
[RegExpDate] DATE NOT NULL,
[InsExpDate] DATE NOT NULL,
[VehModel] NVARCHAR (120) NOT NULL,
[VehOrigin] NVARCHAR (120) NOT NULL,
[VehType] NVARCHAR (80) NOT NULL,
PRIMARY KEY CLUSTERED ([VehRegID] ASC)
);
這是我的表VMA_VehDrvAssigned_TB
:
CREATE TABLE [dbo].[VMA_VehDrvAssigned_TB]
(
[VehRegID] INT DEFAULT ((0)) NOT NULL,
[DrvRegID] INT DEFAULT ((0)) NOT NULL,
[IsAssigned] BIT DEFAULT ((0)) NOT NULL,
CONSTRAINT [PK_VMA_VehDrvAssigned_TB] PRIMARY KEY CLUSTERED ([VehRegID] ASC)
);
我已使用此存儲過程將新的注冊車輛ID添加到VMA_VehDrvAssigned_TB
表。 一切正常。
ALTER PROCEDURE [dbo].[addNewVehicleDetail_SP]
@TraPNumber NVARCHAR (60)
,@VehOwner NVARCHAR (60)
,@RegExpDate DATE
,@InsExpDate DATE
,@VehModel NVARCHAR (120)
,@VehOrigin NVARCHAR (120)
,@VehType NVARCHAR (80)
,@IsAssigned BIT
,@DrvRegID VARCHAR(60)
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO [VMA_VehicleDetails_TB] (TraPNumber, VehOwner, RegExpDate, InsExpDate, VehModel, VehOrigin, VehType)
VALUES (@TraPNumber, @VehOwner, @RegExpDate, @InsExpDate, @VehModel, @VehOrigin, @VehType)
INSERT INTO VMA_VehDrvAssigned_TB (VehRegID)
SELECT
VehRegID = scope_identity();
END
現在,我想在插入新記錄時將@IsAssigned
和@DrvRegID
添加到同一表。 但是,我只知道向表中添加單列。 我有什么問題嗎?
只需修改最后一個INSERT。
ALTER PROCEDURE [dbo].[addNewVehicleDetail_SP]
-- Add the parameters for the stored procedure here
@TraPNumber NVARCHAR (60)
,@VehOwner NVARCHAR (60)
,@RegExpDate DATE
,@InsExpDate DATE
,@VehModel NVARCHAR (120)
,@VehOrigin NVARCHAR (120)
,@VehType NVARCHAR (80)
,@IsAssigned BIT
,@DrvRegID VARCHAR(60)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO [VMA_VehicleDetails_TB] (TraPNumber,VehOwner,RegExpDate,InsExpDate,VehModel,VehOrigin,VehType)
VALUES (@TraPNumber,@VehOwner,@RegExpDate,@InsExpDate,@VehModel,@VehOrigin,@VehType)
INSERT INTO VMA_VehDrvAssigned_TB (VehRegID, DrvRegID, IsAssigned )
SELECT scope_identity(), @DrvRegID, @IsAssigned ;
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.