Sql server 探索存储过程并再添加一个参数
我被困在这里,我迷失在中间的某个地方。因此,我将尝试解释情况 我有一个存储过程,Sql server 探索存储过程并再添加一个参数,sql-server,stored-procedures,Sql Server,Stored Procedures,我被困在这里,我迷失在中间的某个地方。因此,我将尝试解释情况 我有一个存储过程,将s数据插入表中,它工作得非常好。现在我再添加一个变量,这个变量非常重要 我从Active Directory获取数据并将其存储到文件中。另一方面,我在数据库中有一个表,其中也包含一些数据 CREATE PROCEDURE [dbo].[ADProcTemp] @Username varchar(250), @DisplayName varchar(70), @isEnabled tinyin
将
s数据插入表中,它工作得非常好。现在我再添加一个变量,这个变量非常重要
我从Active Directory获取数据并将其存储到文件中。另一方面,我在数据库中有一个表,其中也包含一些数据
CREATE PROCEDURE [dbo].[ADProcTemp]
@Username varchar(250),
@DisplayName varchar(70),
@isEnabled tinyint,
@PassNevExp tinyint
AS
SET NOCOUNT ON
BEGIN
IF NOT EXISTS (SELECT TOP 1 PrezimeIme FROM [dbo].[tblZaposleni_AD] WITH (NOLOCK)
WHERE NetworkLogin = @Username)
BEGIN
IF(@isEnabled = 1)
INSERT INTO [dbo].[tblZaposleni_AD](NetworkLogin, PrezimeIme, Status, PassNevExp)
VALUES (@Username, @DisplayName, @isEnabled, @PassNevExp)
END
ELSE
BEGIN
UPDATE [dbo].[tblZaposleni_AD]
SET Status = @isEnabled
WHERE NetworkLogin = @Username
AND Status <> @isEnabled
END
SELECT @@ROWCOUNT AS NumberOfRowsAffected
END
对我来说,这有点复杂,我被卡住了。有人能帮我吗?您可以使用
大小写
表达式有条件地更新状态
值:
UPDATE [dbo].[tblZaposleni_AD]
SET Status = CASE
WHEN @isEnable=0 AND @PassNevExp=0 THEN 'Nothing'
WHEN @isEnable=0 AND @PassNevExp=1 THEN 'First Case'
WHEN @isEnable=1 AND @PassNevExp=0 THEN 'Second Case'
WHEN @isEnable=1 AND @PassNevExp=1 THEN 'Third Case'
END
WHERE
NetworkLogin = @Username
AND Status <> @isEnabled;
UPDATE[dbo].[tblZaposleni\u AD]
设置状态=案例
当@isEnable=0和@PassNevExp=0时,则为“Nothing”
当@isEnable=0且@PassNevExp=1时,则为“第一种情况”
当@isEnable=1且@PassNevExp=0时,则为“第二种情况”
当@isEnable=1和@PassNevExp=1时,则为“第三种情况”
结束
哪里
NetworkLogin=@Username
和状态@isEnabled;
UPDATE [dbo].[tblZaposleni_AD]
SET Status = CASE
WHEN @isEnable=0 AND @PassNevExp=0 THEN 'Nothing'
WHEN @isEnable=0 AND @PassNevExp=1 THEN 'First Case'
WHEN @isEnable=1 AND @PassNevExp=0 THEN 'Second Case'
WHEN @isEnable=1 AND @PassNevExp=1 THEN 'Third Case'
END
WHERE
NetworkLogin = @Username
AND Status <> @isEnabled;