Dies führt eine gespeicherte procprüfen Rekordwert nach dem Update gespeicherte Prozedur MS SQL
EXEC dbo.Web_update
@hHomeEmail = '[email protected]',
@pPassword = 'XXXXX',
@mMemberID = '123456'
gespeicherte Prozedur
UPDATE Member
SET pass_w = @pPassword,
HomeEmail = @hHomeEmail
WHERE [email protected];
Ich möchte die Werte von HomeEmail überprüfen und pass_w nach dem Update, wenn NULL oder den booleschen Wert als Ergebnis dieses Aufrufs nicht zurückzugeben.
---------- ---------- UPDATE
USE [Test]
GO
/****** Object: StoredProcedure [dbo].[Web_update] Script Date: 03/21/2017 12:37:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
ALTER PROCEDURE [dbo].[Web_update]
-- Add the parameters for the stored procedure here
@hHomeEmail nvarchar(10) = NULL,
@MemberNo nvarchar(10) = NULL,
@pPassword nvarchar(10) = NULL,
@mMemberID INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
UPDATE Member SET pass_w = @pPassword, HomeEmail = @hHomeEmail WHERE [email protected];
-- Insert statements for procedure here
SELECT CASE WHEN EXISTS (SELECT 1 FROM member WHERE [email protected] AND pass_w = NULL OR HomeEmail= NULL)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) END
END
Nun möchte Ich mag überprüfen, ob:
pass_w = NULL
OR
pass_w = ''
OR
HomeEmail = NULL
ODER
HomeEmail = ''
wenn einer von ihnen dann CAST (1 AS BIT)
ELSE CAST (0 AS BIT)
Warum alle in diesen Spalten an erster Stelle null? –
Mögliches Duplikat von [Aktualisierte Zeile abrufen] (http://StackOverflow.com/questions/1367018/get-updated-row) –
Warum wurde die Elementtabelle später mit Null sowohl HomeEmail als auch pass_w hinzugefügt. Mitglieder können sich jetzt online anmelden, müssen aber HomeEmail und pass_w aktualisieren, bevor sie fortfahren können. –