1

2 つの引数 (Int、文字列) を取るプロシージャを準備したいと思います。テーブルに行が存在する場合、@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

トピック [終了] 助けてくれてありがとう。

4

1 に答える 1

2

変数に値を代入するときは、SETまたはを使用する必要があります。SELECT

EXISTSIFあなたのブロックの要件を満たしているようです

@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
于 2012-10-31T08:22:01.340 に答える