0

私はストアドプロシージャが初めてです。

ALTER PROCEDURE [dbo].[SP_MY_STORE_PROCEDURED]
(
@ID INT,
@NAME VARCHAR(50)
)
AS
BEGIN
    UPDATE MY_TABLE
    SET    

WHEN
(( ID ) > 1)
THEN
ID=@ID 
,

NAME = @NAME 

END

when then を使用してIDを更新し、Name

Id が 1 より大きい場合は更新したいのですが、それ以外の場合は更新しません。

どうすればms sqlを実行できますか?

どんな助けでも大歓迎です。

ありがとう。

4

3 に答える 3

0

何を更新しようとしているのか正確にはわかりません。ID = @ID のユーザー レコードの名前を変更しようとしていますか?

ALTER PROCEDURE [dbo].[SP_MY_STORE_PROCEDURED]
(
@ID INT,
@NAME VARCHAR(50)
)
AS
BEGIN

    UPDATE MY_TABLE
    SET Name = @Name
    WHERE Id = @ID and @ID > 1

END
于 2013-11-06T09:27:38.063 に答える
0

これがあなたが求めているものだと思います:

ALTER PROCEDURE [dbo].[SP_MY_STORE_PROCEDURED]
(
@ID INT,
@NAME VARCHAR(50)
)
AS
BEGIN
    UPDATE MY_TABLE
    SET NAME = @NAME
    WHERE ID = @ID
END

@ID との等価性をチェックしているため、ID>1 をチェックする必要はありません。@ID <=1 の場合にこれが発生しないことを確認したい場合は、次のことを試してください。

ALTER PROCEDURE [dbo].[SP_MY_STORE_PROCEDURED]
(
@ID INT,
@NAME VARCHAR(50)
)
AS
BEGIN
    IF @ID > 1
        UPDATE MY_TABLE
        SET NAME = @NAME
        WHERE ID = @ID
END
于 2013-11-06T09:25:14.773 に答える
0

これでうまくいくはずです。

ALTER PROCEDURE [dbo].[SP_MY_STORED_PROCEDURE] ( @ID INT, @NAME VARCHAR(50) )
AS
BEGIN
    IF @ID > 1
        UPDATE MY_TABLE
        SET Name = @Name
        WHERE Id = @ID
END
于 2013-11-06T09:34:58.827 に答える