mid*_*pat 4 sql t-sql sql-server-2008
我有2个表,通过外键,字段连接UploadID.
我想从数据库中删除一些行.我尝试了几个不起作用的SQL查询.
现在我有一个我认为应该做的技巧,但是得到了错误:
消息102,级别15,状态1,行2
','附近的语法不正确.
DELETE
a, b FROM [Uploads] as a,
[OrderLines] as b
WHERE [Uploads].UploadID < 53436;
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
您只能在SQL Server中一次从1个表中删除
但是,如果您设置了密钥,cascade delete那么如果从父表中删除它们,则它们将从子表中自动删除
否则你需要运行两个delete语句,第一个用于子行,然后一个用于父行
这样的事......但我很困惑...... 你的JOIN条件在哪里?
DELETE
b FROM [Uploads] as a,
[OrderLines] as b
WHERE [Uploads].UploadID < 53436;
DELETE
[Uploads]
WHERE [Uploads].UploadID < 53436;
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用ANSI JOIN的新样式.如下所示
DELETE
b FROM [Uploads] as a,
JOIN [OrderLines] as b on A.SomeColumns = b.SomeColumn
WHERE a.UploadID < 53436;
Run Code Online (Sandbox Code Playgroud)
你几乎有笛卡尔积(交叉连接)
| 归档时间: |
|
| 查看次数: |
6701 次 |
| 最近记录: |