0
私はとUserCategoryName
、既存のレコードを確認したいと思います。existing record
を作成しますが、正しく動作していません。UserCategoryCode,
どうすればいいですか?イムストアドプロシージャが存在しない詳細
SP
ALTER PROCEDURE [dbo].[UserCategories_InsertUpdate]
@UserCategoryId int,
@UserCategoryCode varchar(50),
@UserCategoryName varchar(250),
@Remarks nvarchar(max),
@StatusId int,
-- @StatusChangeDate DATETIME,
@CreateId int,
@Mode varchar(50),
@iOutput int output
AS
BEGIN
BEGIN TRY
BEGIN TRAN
IF @Mode = 'Add'
BEGIN
IF NOT EXISTS (SELECT UserCategoryCode,UserCategoryName FROM UserCategories WHERE UserCategoryCode = @UserCategoryCode AND UserCategoryName = @UserCategoryName)
BEGIN
INSERT INTO UserCategories(
UserCategoryCode,
UserCategoryName,
StatusId,
StatusChangeDate,
CreateBy,
CreatedDate,
Remarks
)
VALUES(
@UserCategoryCode,
@UserCategoryName,
@StatusId,GETDATE(),
@CreateId,GETDATE(),
@Remarks
)
SET @iOutput = 1 --save successful--
END
ELSE
BEGIN
SET @iOutput=-3 --existing record--
END
END
ELSE IF @Mode = 'Modify'
BEGIN
UPDATE UserCategories
SET UserCategoryCode = @UserCategoryCode,
UserCategoryName = @UserCategoryName,
StatusId = @StatusId,
Remarks = @Remarks,
EditBy = @CreateId,
EditDate = GETDATE()
WHERE UserCategoryId = @UserCategoryId
SET @iOutput = 2 --save successful--
END
COMMIT
END TRY
BEGIN CATCH
print ERROR_MESSAGE()
SET @iOutput = -2 --sp error--
ROLLBACK
END CATCH
END
使用するdbmsにタグを付けます。 (そのコードはANSI SQLのようには見えません...) – jarlh
先生、アドバイスありがとうございました。私はSQLの初心者です。私は学びたいと思います。アドバイス:)(標準、そこにはSQL言語のバージョンがありますが、ANSI規格に準拠するには、少なくともメジャーコマンドをサポートしています) ' – Codeone
SQLはANSI/ISOで指定された言語です。ほとんどのdbms製品は、その標準に近いSQL実装を備えています。しかし、ストアドプロシージャに関しては、ほとんどの製品が独自のバージョンを持っています。あなたのコードはANSI SQLに準拠していません。あなたが使用しているdbmsにタグを付けると、より良い注意とより良い答えが得られます - より速く! – jarlh