Я пытаюсь вставить asp.net
данные сетки в таблицу базы данных [DBO].[tbl_family_member]
.Для этого я создал тип typ_fam_mem
.Но проблема в том, что значение столбца family_member_id генерируется из другой таблицы [DBO].[TBL_FAMILY_HEAD]
.Пожалуйста, посмотрите на процедуру.
Как вставить данные в таблицу из переменных данных и процедурных переменных?
CREATE TABLE [DBO].[tbl_family_member]
(
family_member_id bigint identity(1,1) not null,
family_head_id bigint NOT NULL,
mem_name nvarchar(200) not null,
mem_gender tinyint not null,
mem_occupation nvarchar(50),
mem_maritial_status tinyint,
STATUS INT NOT NULL DEFAULT '1',
CONSTRAINT pk_family_member PRIMARY KEY (family_member_id)
)
create type typ_fam_mem as table
(
mem_name nvarchar(200) not null,
mem_gender tinyint not null,
mem_occupation nvarchar(50),
mem_maritial_status tinyint
)
Хранимая процедура
CREATE PROCEDURE [dbo].[P_SET_PROFILE_REGISTRATION]
(
--- FOR FAMILY HEAD TABLE
@P_NAME NVARCHAR(200),
@P_GENDER TINYINT,
---- FOR FAMILY MEMBER
@P_FAMILY_DT DBO.typ_fam_mem READONLY,
@V_OUT TINYINT OUTPUT
)
AS
DECLARE @FAMILY_HEAD_ID BIGINT;
BEGIN
SET NOCOUNT ON;
BEGIN TRY
INSERT INTO [DBO].[TBL_FAMILY_HEAD] ([NAME], [GENDER])
VALUES (@P_NAME, @P_GENDER)
SET @FAMILY_HEAD_ID = SCOPE_IDENTITY();
IF @@ROWCOUNT > 0
BEGIN
--- block for inserting data into [DBO].[tbl_family_member]
END
END TRY
BEGIN CATCH
END CATCH
END