如何将数据insert
分成几个表,每个表具有不同的类型和数量的参数。例如
表1
Code Type
'A' X
表2
Code Type Status Dasl
这里的参数数量不同。
在这种情况下,如何使用公用的insert
将数据stored procedure
conda install -c conda-forge opencv
到表中。
答案 0 :(得分:0)
创建样本存储过程以了解如何将数据保存到记录中。 如下所示创建表类型以将多个记录插入数据库中
CREATE TYPE [dbo].[tbl_Table2] AS TABLE(
[Code] [char](2) NULL,
[Type] [char](2) NULL,
[Status] [varchar](5) NULL,
[Dasl] [varchar](5) NULL
)
GO
CREATE PROCEDURE [dbo].[Usp_DataInsert]
(
@Code CHAR(2),
@Type CHAR(2),
@tbl_Table2 AS tbl_Table2 READONLY
)
AS
BEGIN TRY
IF EXISTS(SELECT 1 FROM @tbl_Table2)
BEGIN
INSERT INTO Table2
(
Code
,[Type]
,[Status]
,Dasl
)
SELECT Code
,[Type]
,[Status]
,Dasl
FROM @tbl_Table2
END
INSERT INTO Table1
(
Code,
[Type]
)
SELECT @Code,@Type
END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END CATCH;
通过存储过程将数据插入表中
DECLARE @RC int
DECLARE @Code char(2)='Z'
DECLARE @Type char(2)=33
DECLARE @tbl_Table2 tbl_Table2
INSERT INTO @tbl_Table2
SELECT 'A','X','A','AB' UNION ALL
SELECT 'A','X','A','AB' UNION ALL
SELECT 'A','X','A','AB' UNION ALL
SELECT 'A','X','A','AB'
EXECUTE @RC = [dbo].[Usp_DataInsert]
@Code
,@Type
,@tbl_Table2
GO
答案 1 :(得分:0)
您需要使用不同的存储过程来插入具有不同参数的多个表,还可以从前端使用事务