我运行一个工具室,我们使用数据库来跟踪我们的工具。通过输入" parent"的ItemID,可以将项目嵌套在其他项目下。 " ParentID"中的工具柱。例如,扳手位于工具箱内,因此工具箱(2)的ItemID输入扳手的ParentID字段中。这是一个示例表:
ItemID BarcodeID Name ParentId UserTxtBox
1 0001 Wrench 2 null
2 box1 Tool Box null null
3 0002 Socket 4 null
4 box2 Tool Box null null
我试图将UsrTxtBox的值设置为其父项的BarcodeID,如下所示:
ItemID BarcodeID Name ParentId UserTxtBox
1 0001 Wrench 2 box1
2 box1 Tool Box null null
3 0002 Socket 4 box2
4 box2 Tool Box null null
我提出的但不起作用的查询是:
DECLARE @parentid int
SET @parentid = null
UPDATE dbo.items
SET @parentid = ParentId
,UserTxtBox = (SELECT BarcodeId FROM dbo.items WHERE ItemId = @parentID)
查询运行没有错误,但不做任何更改。在我的实验过程中,如果我替换" 2"对于@parentid在where子句中,它确实" work",但当然它会为表中的每个项目生成UserTxtBox = box1。如果相反,我设置@parentid = 2,并将变量名留在where子句中,它仍然不起作用。我已经验证了ParentId的值存储在@parentid中,但是当我在where子句中使用该变量时它不起作用。为什么不呢?
ItemID是主键,ParentID是外键。在这些陈述中,键是否与普通整数区别对待?
提前感谢您的任何帮助。经过多年在本网站上查找答案,我仍然惊讶于很多人都有时间分享他们的知识。
答案 0 :(得分:1)
带update
的{{1}}
join