Im erstellen Sie die gespeicherte Prozedur, ich möchte überprüfen, UserCategoryCode
und UserCategoryName
, bestehenden Datensatz, ich mache eine existing record
, aber nicht richtig funktioniert es für die UserCategoryCode,
Wie kann ich es tun? im versuchen, es zu tun, aber nicht arbeiten, (Seine Arbeit für die UserCategoryName
)gespeicherte Prozedur existiert Details nicht validieren
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
Markieren Sie die verwendeten DBMS. (Dieser Code sieht überhaupt nicht wie ANSI SQL aus ...) – jarlh
Sir, danke für den Rat und ich bin nicht klar, können Sie es bitte erklären, ich bin ein Anfänger für die SQL, ich mag es zu lernen, und ich akzeptierte Ihre Beratung :) meintest du '(Standard gibt es verschiedene Versionen der SQL-Sprache. Um jedoch mit dem ANSI-Standard zu entsprechen, unterstützen sie alle mindestens die Hauptbefehle)' – Codeone
SQL ist eine durch ANSI/ISO spezifizierte Sprache. Die meisten dbms-Produkte verfügen über eine SQL-Implementierung, die diesem Standard nahe kommt. Wenn es jedoch um gespeicherte Prozeduren geht, haben die meisten Produkte ihre eigenen Versionen. Ihr Code ist nicht ANSI SQL-konform. Wenn Sie die von Ihnen verwendeten dbms markieren, erhalten Ihre Fragen bessere Aufmerksamkeit und bessere Antworten - schneller! – jarlh