SQL删除查询
SQL删除查询
这个问题已经有答案了:
当我要执行以下查询时:
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 \',\'.
显然,在\"DELETE\"和\"INNER JOIN\"之间有错误。(DELETE login,klantGegevens,orderGegevens FROM login INNER JOIN )
应该是什么?
谢谢。
编辑:
我想删除klantId 3。
admin 更改状态以发布 2023年5月21日
我不知道你尝试使用内连接是否意味着你只想在所有3个表中都存在时才删除记录。
对于这个答案- 假设你不关心(无论在哪里找到都想删除它):
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
EXEC dbo.DeleteLotsOfStuff 3
或者 - 你可以向主表添加约束(主键/外键关系),然后将其设置为“DELETE CASCADE”。如果你这样做,那么每当你运行(例如):
DELETE FROM login WHERE klantid = @id
它会自动从klantGegevens和orderGegevens中删除相应的行。
有关添加约束的更多信息:https://msdn.microsoft.com/zh-cn/library/ms188066.aspx