在SQL 2000里,有两张数据表,A表中的字段M与B表中的字段N存在对应关系,即通过M的值,能查出N的记录数,A与B是一对多的关系,即A表中的一条记录,可能对应B表中的多行记录,
现在要做一个批最数据的删除操作。要求是:先过滤A表中的记录,用条件将A表中的字段X的值等于123,这样会得到A表中所有X=123的记录,然后要把B表中的与A表对应的数据全部删除掉,再来删除A表中的这些记录,作用是清空这两个表中符合条件的记录。
问,如何用SQL语句批量删除B表中的相应数据?
查询语句:
select * from B inner join A on B.n=A.m where A.x=123
删除语句:
Delete B from B inner join A on B.n=A.m where A.x=123
语句实例(ST_StkRecord为主表、ST_StkRecordLine为子表):
DELETE ST_StkRecordLine
FROM ST_StkRecordLine INNER JOIN ST_StkRecord
ON ST_StkRecordLine.cHeadGUID = ST_StkRecord.cGUID
WHERE (ST_StkRecord.cStoreGUID = '776785073741109736')
----
修改表中的值( jxc_bm_sp,temptable分别为两张表,bm_lb为共用的字段)
UPDATE jxc_bm_sp SET bm_lb = 7
FROM jxc_bm_sp INNER JOIN TempTable ON jxc_bm_sp.bm = TempTable.bm |
|