![](/img/trans.png)
[英]Updating a table using gridview stored procedure, does not update my table
[英]updating table information using stored procedure
我有一個數據庫,其中包含從表“tbl_info”中提取的資產列表及其信息,並且解決方案在 sql 中檢出,但是在提交后它不會更新表。 我不知道我錯在哪里。 我對存儲過程和體面的 sql 相當陌生。
這是我的代碼。
CREATE PROCEDURE [update_TBL_INFO_4]
(@ASSET_NUMBER [nvarchar],
@PORT_NUMBER [nvarchar],
@MACHINE_NAME [nvarchar],
@TYPE [nvarchar],
@BRANCH [nvarchar],
@BUILDING_NUMBER [nvarchar],
@FLOOR [nvarchar],
@ROOM_NUMBER [nvarchar],
@TELEPHONE_NUMBER [nvarchar],
@USERS [nvarchar],
@SERIAL [nvarchar])
AS
BEGIN
UPDATE [datasystems].[dbo].[TBL_INFO]
SET [ASSET_NUMBER] = @ASSET_NUMBER,
[PORT_NUMBER] = @PORT_NUMBER,
[MACHINE_NAME] = @MACHINE_NAME,
[TYPE] = @TYPE,
[BRANCH] = @BRANCH,
[BUILDING_NUMBER] = @BUILDING_NUMBER,
[FLOOR] = @FLOOR,
[ROOM_NUMBER] = @ROOM_NUMBER,
[TELEPHONE_NUMBER] = @TELEPHONE_NUMBER,
[USERS] = @USERS,
[SERIAL] = @SERIAL
WHERE
( [ASSET_NUMBER] = @ASSET_NUMBER AND
[PORT_NUMBER] = @PORT_NUMBER AND
[MACHINE_NAME] = @MACHINE_NAME AND
[TYPE] = @TYPE AND
[BRANCH] = @BRANCH AND
[BUILDING_NUMBER] = @BUILDING_NUMBER AND
[FLOOR] = @FLOOR AND
[ROOM_NUMBER] = @ROOM_NUMBER AND
[TELEPHONE_NUMBER] = @TELEPHONE_NUMBER AND
[USERS] = @USERS AND
[SERIAL] = @SERIAL)
END
GO
由於您的WHERE
子句檢查所有參數,如果它們中的任何一個不同(即,當您傳遞更新的值時), WHERE
將不會找到任何匹配的記錄。
如果您定義了主鍵,請在WHERE
子句中使用它並更新其余部分。 否則,您可能還需要傳入舊值以找到合適的匹配項。
更新:
主鍵為ASSET_NUMBER
,您需要更新不是主鍵的字段,並在WHERE
子句中單獨使用主鍵,如下所示:
UPDATE
[datasystems].[dbo].[TBL_INFO]
SET
[PORT_NUMBER] = @PORT_NUMBER,
[MACHINE_NAME] = @MACHINE_NAME,
[TYPE] = @TYPE,
[BRANCH] = @BRANCH,
[BUILDING_NUMBER] = @BUILDING_NUMBER,
[FLOOR] = @FLOOR,
[ROOM_NUMBER] = @ROOM_NUMBER,
[TELEPHONE_NUMBER] = @TELEPHONE_NUMBER,
[USERS] = @USERS,
[SERIAL] = @SERIAL
WHERE
[ASSET_NUMBER] = @ASSET_NUMBER
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.