我想根据另一个表中的条件从表中删除一些记录。如何删除其中一个表而不删除两个表中的记录?
我希望删除一个与其他表连接的表,查询看起来像这样。
DELETE DeletingFromTable
FROM DeletingFromTable
INNER JOIN CriteriaTable ON DeletingFromTable.field_id = CriteriaTable.id
WHERE CriteriaTable.criteria = "value" ;
答案 0 :(得分:1)
您的问题不是100%明确您的问题,但此查询将同时删除表1,2和3:
DROP TABLE table1,table2,table3
答案 1 :(得分:1)
您一次只能从一个表中删除数据。
从多个表中删除 写下以分号分隔的多个查询,并在
等onces上执行delete from table1;
delete from table2;
delete from table3;
或者您可以编写执行此任务的过程。
答案 2 :(得分:1)
这应该有效:
DELETE DeleteFromTable FROM DeleteFromTable AS DT
JOIN CriteriaFromTable AS CT ON DT.SomeId = CT.SomeId
WHERE CT.SomeId=[value]
答案 3 :(得分:0)
你可以像DROP
一样向DROP TABLE [TABLE_1]
DROP TABLE [TABLE_2]
DROP TABLE [TABLE_3]
表写一个查询:
DROP
根据表格和它们之间可能存在的任何约束,您需要以正确的顺序DROP
表格。
如果右键单击任何表(取决于SQL版本),您应该能够“查看依赖关系”。如果您计划DROP
的3个表仅相互依赖,则需要先DROP
表中没有子依赖关系,以避免失败。
例如,如果您尝试删除父表,其中主键在子表中作为外键引用,则DROP
将因此而失败。因此,首先使用外键删除子表将允许您随后{{1}}父表。
但是,如果这些表在您要删除的表之外具有其他依赖关系,则需要先删除依赖关系才能生效。
答案 4 :(得分:0)
您可以使用:
DELETE FROM TableName
将删除所有数据,但如果您有任何种子列,则不会重置这些数据。如果您要删除数据并重置PK的种子,请使用TRUNCATE
...
TRUNCATE TABLE TableName
但是,您需要考虑是否有其他表格referential integrity
,如果是这种情况,请参阅此帖子SQL Server: How to ignore referential integrity until COMMIT?
修改强>:
您的上述评论......
删除这样的DELETE FROM table_name WHERE查询 some_column = SOME_VALUE;
...建议您要删除特定的行?