SQL:如何从另一个表中删除行会议条件

时间:2012-04-05 22:12:34

标签: sql sql-server

我能够使用select语句识别我想要的数据:

SELECT  InventoryUnitMeasure.ItemCode, 
        InventoryUnitMeasure.UPCCode,  
        InventoryItem.ItemName
FROM InventoryUnitMeasure 
   INNER JOIN InventoryItem 
         ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode
where ItemName like 'SNT%'

然后我尝试更改以删除表InventoryUnitMeasure中的列UPCode,但是出现错误:

DELETE upccode from
FROM dbo.InventoryUnitMeasure
  INNER JOIN  InventoryItem 
     ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode
where ItemName like 'SNT%'

我知道我犯了一个简单的错误,但我无法理解它,我尝试了查看多个网站和多个搜索,但我只能看到如何在加入时删除整个表而不仅仅是一个列。

非常感谢任何帮助。

我使用SQL Server作为DBMS。

3 个答案:

答案 0 :(得分:3)

DELETE语句不是用于删除整行吗?由于我感到不安和你的问题,你应该使用UPDATE语句来代替..

UPDATE table dbo.InventoryUnitMeasure SET upcode = null ...

语法上的一些提示可以是here(快速谷歌搜索)

答案 1 :(得分:0)

DELETE InventoryUnitMeasure.upccode 
FROM dbo.InventoryUnitMeasure
    INNER JOIN  InventoryItem 
     ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode
where ItemName like 'SNT%'

这应该有效

答案 2 :(得分:0)

您是否注意到一个接一个有两个FROM语句?只需将删除语句的开头更改为DELETE FROM table_name ....

如果您希望更新特定列下的单元格值,则Píďa是正确的。如果您希望从表中删除整个列,则应使用 ALTER TABLE table_name

DROP COLUMN column_name

这意味着您正在更改该表的结构。