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 更新我的IDName

如果 Id 大于 1 我想更新,否则不更新。

我该怎么做ms sql?

任何帮助将不胜感激。

谢谢。

4

3 回答 3

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 回答
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>1,因为您正在检查与 @ID 的相等性。如果您想确保@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

我不确定您要更新的确切内容。您是否尝试使用 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 回答