关于SQL插入与删除语句
SQL中,A表与B表的结构是不相同的,将A表的记录按条件查询出来,放入DataTable中,然后获取相应的值插入到B表中;同时删除A表中的被查记录.例:
A表中的字段
ID Name Age Address
1 小李 29 北京
2 小王 26 天津 这条应该删除
3 小刘 30 上海
4 小张 31 深圳 这条应该删除
5 小红 26 深圳
B表中的字段
ID AID Name Age Address School
1 2 小王 26 天津 清华
2 4 小张 31 深圳 北大
是按ID来删除吗?如果是,请问这条SQL语句怎么写?
提示:B表中可是多出了一列School列哦,上面只是个例子,给出了A表中ID为2和4的数据,完全有可能是1和3,1和5等等,ID绝对不是固定的.A表中的ID列为自增长列.
[解决办法]
删除的SQL就这么写好了
--检索
--select * from A where ID in (select AID from B)
--删除
--delete from A where ID in (select AID from B)
[解决办法]
什么叫获取相应的值?相应是什么意思?
[解决办法]
这位仁兄说的好,这种一增一删的用事务处理,代码如下
Select * from dbo.A where ID=2
Begin TransAction
declare @ID int
declare @error int
set @ID=1 --A表ID
set @error=0
Insert into dbo.B(AID,Name,Age,Address) select * from dbo.A where ID=@ID
set @error=@error+@@error
Delete from dbo.A where ID=@ID
set @error=@error+@@error
if(@error>0)
begin
print('Failed')
rollback TransAction
end
else
Begin
print('Succeed')
Commit TransAction
End