我想在SQL Server中执行存储过程并将输出分配给字符串。
CREATE PROCEDURE sp_Check_User_Password
@name NVARCHAR(30),
@email NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @pass NVARCHAR(50)
IF EXISTS(SELECT dbo.Mitarbeiter.Name, dbo.Mitarbeiter.Email
FROM dbo.Mitarbeiter
WHERE dbo.Mitarbeiter.Name = @name
AND dbo.Mitarbeiter.Email = @email
BEGIN
SET @pass = dbo.Mitarbeiter.Password
END
ELSE
BEGIN
SET @pass = null
END
RETURN @pass
END
我改变了我写的错误
答案 0 :(得分:0)
我会捅它。这是你想要做的吗?
CREATE PROCEDURE sp_Check_User_Password
@name nvarchar(30),
@email nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @pass nvarchar(50) = null
IF EXISTS(SELECT dbo.Mitarbeiter.Email FROM dbo.Mitarbeiter
WHERE dbo.Mitarbeiter.Name = @name and dbo.Mitarbeiter.Email = @email)
BEGIN
SELECT @pass = dbo.Mitarbeiter.Email FROM dbo.Mitarbeiter
WHERE dbo.Mitarbeiter.Name = @name and dbo.Mitarbeiter.Email = @email
END
PRINT @pass
END
答案 1 :(得分:0)
看看下面的示例,只需添加您的内容即可使用
CREATE PROCEDURE return_string
(@param1 NVARCHAR(10),
@param2 NVARCHAR(10),
@output NVARCHAR(10) OUT)
AS
BEGIN
IF (1=1)
SET @output = 'here'
else
SET @output = null
END
测试
declare @out nvarchar(10)
exec return_string 'firdt param', 'second param', @out out
select @out
我希望这能帮助你实现所需。
所以你的SP看起来像:
CREATE PROCEDURE sp_Check_User_Password
(
@name nvarchar(30),
@email nvarchar(50),
@pass nvarchar(50) OUT
)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(SELECT 1
FROM dbo.Mitarbeiter
WHERE dbo.Mitarbeiter.Name = @name
and dbo.Mitarbeiter.Email = @email)
BEGIN
SET @pass = (SELECT dbo.Mitarbeiter.Name
FROM dbo.Mitarbeiter
WHERE dbo.Mitarbeiter.Name = @name
and dbo.Mitarbeiter.Email = @email)
END
ELSE
BEGIN
SET @pass = null
END
END