sql delete query
本问题已经有最佳答案,请猛点这里访问。
当我要执行以下查询时:
1 2 3 4 5 6 7 8 | DELETE login, klantGegevens, orderGegevens FROM login INNER JOIN klantGegevens ON login.klantid=klantGegevens.klantid INNER JOIN orderGegevens ON login.klantid=orderGegevens.loginNr WHERE login.klantId=3 |
我得到错误:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ','.
号
显然,"删除"和"内部联接"之间存在错误。(从登录内部联接中删除登录、klantgegevens、ordergegevens)
应该是什么?
谢谢你。
编辑:
。
我想删除Klantid 3。
我不知道,如果你试图使用内部连接implies,你只想删除A记录,如果它存在,在所有三个表。
这个答案——如果你不在乎(你只是想删除它无论你找到它)。
1 2 3 4 5 6 7 8 9 10 11 | CREATE PROC dbo.DeleteLotsOfStuff (@id INT) AS BEGIN DELETE FROM login WHERE klantid = @id DELETE FROM klantGegevens WHERE klantid = @id DELETE FROM orderGegevens WHERE loginNr = @id END |
1 | EXEC dbo.DeleteLotsOfStuff 3 |
-你也加(主键约束/外交关系表的主密钥),然后设置它的"级联删除。如果你去,然后当你运行(例如):
1 | DELETE FROM login WHERE klantid = @id |
它会自动删除从
更多信息在这里添加contraints:http://。/en-US /图书馆/ ms188066.aspx
试试这个语法
1 2 3 4 5 6 7 | DELETE L FROM login L INNER JOIN klantGegevens ON L.klantid = klantGegevens.klantid INNER JOIN orderGegevens ON L.klantid = orderGegevens.loginNr WHERE L.klantId = 3 |