0

TableA からレコードのリストを取得し、それらのレコードを TableB に挿入するストアド プロシージャを作成しています。今、私はこれで問題に直面しています。

これが私のspです:

USE [Sample_DB]
GO

SET ANSI_NULLS ON
GOenter code here
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AddStoredProcedure]

AS
BEGIN

  DECLARE @ProcessedData AS TABLE (Name varchar(200),MaritalStatus varchar(200))     

  INSERT INTO @ProcessedData (Name ,MaritalStatus )
  SELECT Name,MaritalStatus from TableA where MaritalStatus='Male'   


  INSERT INTO [TableB] 
  (
       Id
      ,Name
      ,MaritalStatus        
  )
  SELECT ('M_'+cast(RIGHT(Year(getDate()),2) as varchar)+'_'+cast(REPLACE(STR((select MAX(Id)+1 from [TableA] where MaritalStatus='Male'),4),' ','0') as varchar)),Name,MaritalStatus FROM @ProcessedData 

END  

  TableA contains,

    Id   Name      MaritalStatus
    1    John      Male
    2    Sam       Male
    3    Seema     Female

ストアド プロシージャを実行すると、AddStoredProcedure

出力を次のように取得しています

 TableB contains,

    Id          Name     MaritalStatus
    M_13_0003      John     Male
    M_13_0003      Sam      Male

しかし、私は以下のように必要です;

TableB should be,

Id          Name     MaritalStatus
M_13_0003      John     Male
M_13_0004      Sam      Male

ご回答いただきありがとうございます。

4

2 に答える 2