我是存储过程的新手。
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?
任何帮助将不胜感激。
感谢。
答案 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