在Image中,我想从Profile和Login表中删除记录或行,其中Profile表与Profile表中的Login By Id和Login表中的Profileid有关。 我使用这个查询:
DELETE Profile.Id , Profile.Lastname, Profile.Name, Profile.Phone, Profile.Countryid, Profile.Email, Profile.[Address], Profile.Typeid, Profile.[Status], Profile.Regdate,
Login.[Password] Login.Username, Login.Id AS Loginid, Login.Profileid
FROM Login INNER JOIN Profile ON Login.Profileid = Profile.Id
WHERE Profile.Id = 4
但是,当我运行此查询时,我得到此错误Microsoft Sql Server 2008:
Msg 102,Level 15,State 1,Line 1 ','。
附近的语法不正确
执行此操作是否适当的查询删除作业? 如果不是我该怎么做?我的意思是查询应该如何?
答案 0 :(得分:1)
为什么不做这样的事情,
delete from profile where profile_id = 4
delete from login where profile_id = 4
虽然您可能希望为外键设置级联选项。这样,您只需要从配置文件表中删除条目,并且其他表中的所有行将自动删除,其中profile id = 4。 (或者从配置文件表中删除的任何ID。)
答案 1 :(得分:1)
您应该查看delete的语法。
您还需要两个删除语句。每张桌子一个。
delete from login where profileid = 4
delete from profile where id = 4
答案 2 :(得分:0)
试试这个:
DELETE FROM Login WHERE Profile.Id = 4 --fist execute delete from child with FK
DELETE FROM Profile WHERE Profile.Id = 4 -- then execute delete from parent PK
首先从登录表中删除包含[FK] Profile.Id = 4的记录。
然后如果登录表上没有[FK] Profile.Id = 4,那么您现在可以在配置文件表[PK] Profile.Id = 4上删除它。
此致