2016-12-09 161 views
0

我有5个表。只需调用table1,table2,... table5等, 在表1中有一个名为packagekey的列。有5个表格都有这个列。和所有5表都有数据,所以我需要一个SQL Server查询删除所有表使用包密钥, ex: packagekey = 1,2,3,4等SQL服务器多表记录删除

+0

DELETE CD,CA,CC,CPC,CP从CMATPackages如[CP] 左加入CMATDeatiledDesignItem如苯并[cd]在[CP] .PackageKey =苯并[cd] .PackageKey 左加入CMATPackageAssetMap如[CA]上cp.PackageKey = ca.PackageKey 左加入CMATPackageConsultants作为cp.PackageKey = cc.PackageKey 左加入CMATPackageContractorMap作为CPC上cp.PackageKey = cpc.PackageKey 其中cp.PackageKey = '1' –

+0

CC这给一个语法错误在删除cd,ca(它表示语法错误,逗号) –

+0

您必须逐个运行您的删除语句,除非您在' –

回答

0

您可以定义packagekeys然后只是有多个删除语句。

declare @PackageKeys table int; 
insert into @PackageKeys values (1, 2); 

delete from t1 p inner join @PackageKeys pk on pk.PackageKey = p.PackageKey; 
delete from t2 p inner join @PackageKeys pk on pk.PackageKey = p.PackageKey; 
...