テーブルにデータを挿入する手順があります。テーブルに挿入する値(入力パラメータ)をVarchar型として宣言しました。しかし、テーブルの 2 つの列の列の型が Int 型に変更されました。しかし、それでも手順は値を適切に挿入しています (IssuerId 列と Employer Id 列は、基になるテーブル IssuerGroupIDMapping の int 型です)。私にとって重要な質問は、特定のシナリオで手順が失敗するかどうかです。有効な整数のみが渡されるように、C# で既にチェックインしています。手続きする。コードをすぐに変更する必要がありますか。提案してください。
以下は私の手順コードです:
CREATE PROCEDURE [uspInsertIssuerGroupIDMapping]
@EmployerID Varchar(25),
@IssuerID Varchar(25),
@PlanID Varchar(25),
@IssuerGroupID Varchar(25),
@CreateUserID Varchar(25)
*****/
AS
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
--check to see if a duplicate trigger exists
IF ( NOT EXISTS (SELECT 1 FROM [IssuerGroupIDMapping]
WHERE EmployerId = @EmployerID AND PlanId = @PlanID)
)
BEGIN
INSERT INTO [IssuerGroupIDMapping]
([EmployerId]
,[IssuerId]
,[PlanId]
,[IssuerGroupID]
,[CreateUserId]
,[CreateDate]
,[UpdateUserId]
,[UpdateDate]
)
VALUES
(
@EmployerID
,@IssuerID
,@PlanID
,@IssuerGroupID
,@CreateUserId
,(SELECT Framework.udfGetTimeTravelDate())
,@CreateUserId
,(SELECT Framework.udfGetTimeTravelDate())
);
SELECT @@ROWCOUNT;
END
ELSE
BEGIN
--if a duplicate record exists update it
UPDATE [IssuerGroupIDMapping] SET
IssuerId = @IssuerID
,IssuerGroupID = @IssuerGroupID
,UpdateDate = (SELECT Framework.udfGetTimeTravelDate())
,UpdateUserId = @CreateUserID
WHERE EmployerId = @EmployerID
AND PlanId = @PlanID
SELECT @@ROWCOUNT;
END