更新时的Sql Server存储过程案例

时间:2013-11-06 09:22:44

标签: sql sql-server stored-procedures

我是存储过程的新手。

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

我尝试使用,然后更新我的 ID Name

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

我怎么能这样做?sql?

任何帮助将不胜感激。

感谢。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分: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