MSSQL - 返回选择

时间:2012-10-31 08:10:33

标签: sql-server tsql

我想准备一个带2个参数的过程(Int,string)如果表格中存在某些行,我会得到@dane = 1;最后我想选择@dane,但我的程序并不好。我不能使用return @dane。

    USE [SS]
    GO

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    CREATE PROCEDURE [permission].[CheckSkill] 
(
    @SkillId INT, -- Identyfikator użytkownika 
    @Description NVARCHAR(100) = NULL
)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @dana as int
    SET @dana = 0

    -- this is redundant:
    --SET @Description = RTRIM(LTRIM(ISNULL(@Description,'')))

    IF EXISTS (SELECT * FROM permission.UserXSkill Where permission.UserXSkill.SkillId = @SkillId)
    BEGIN
      SET @dana = 1;
    END

    SELECT @dana AS ID;
END
GO

主题[已关闭]感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在为变量指定值时,您需要使用SETSELECT

EXISTS似乎符合IF

中的要求

@Description参数未使用且是多余的

USE [SS]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [permission].[CheckSkill] 
(
    @SkillId INT, -- Identyfikator użytkownika 
    @Description NVARCHAR(100) = NULL,

)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @dana as int
    SET @dana = 0

    -- this is redundant:
    --SET @Description = RTRIM(LTRIM(ISNULL(@Description,'')))

    IF EXISTS (SELECT * FROM permission.UserXSkill Where permission.UserXSkill = @SkillId)
    BEGIN
      SET @dana = 1;
    END

    SELECT @dana AS ID;
END
GO