21、SQL Server 数据修改之Delete

数据修改之Delete 

一、删除基本数据

基本语法:

delete  from 表名 [from  data sources]  [where conditons]

注:一般data sources 很少出现。

二、删除时引用多个表

如:

delete from Product 

from Product join ProductCategory on Product.categoryID=ProductCategory.ID

where ProductCategory.categoryname='video'

这个SQL语句功能:删除Product表中 种类为Video的所有产品,其中因为各类名称

存储在ProductCategory 表中,所以使用了一个联接来完成。

注:这样的操作都可以采用子查询来实现。与update命令的from子句一样,delete

命令的第二个from 子句也不是ANSI SQL标准语法,如果项目的可移植性非常重要,

应使用子查询来实现。

三、级联删除

引用完整性(RI):从表行不能引用不存在的主表行

当删除主表行时,删除从表行中对应的行。(级联删除)

可在外键上加上on delete cascade,

四、物理删除数据的替代方法

1、在行中包含一个逻辑删除位来标记。如Isdelte

但是加了逻辑删除标记,在所有的SQL语句操作(如Select语句)时,

都必须加上对这个删除位的条件判断。

2、将删除的行归档到另一个表或数据库中

3、对所有数据修改进行全面的审计跟踪


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server中,可以使用分布式事务来实现跨服务器修改数据的功能。分布式事务是指在多个服务器上执行的一系列数据库操作,这些操作要么全部成功提交,要么全部回滚。 首先,我们需要在本地服务器和目标服务器上创建连接。可以使用Linked Server功能在本地服务器上创建到目标服务器的连接。具体步骤是在本地服务器上打开SQL Server Management Studio,右键单击“服务器对象”文件夹,选择“新建” -> “链接服务器”。然后在“网状格式”选项中,输入目标服务器的名称、登录信息和其他必要的设置。 连接创建完成后,我们可以使用分布式事务来修改数据。可以使用BEGIN DISTRIBUTED TRANSACTION语句开始一个分布式事务,然后在事务中执行需要的SQL语句。例如,可以使用INSERT、UPDATE或DELETE语句来修改数据修改数据的语法与在本地服务器上执行相同,只是在表名前需要添加目标服务器的名称,以指定在哪个服务器上执行操作。例如,如果目标服务器的名称是“TargetServer”,需要在表名前添加“TargetServer.”,如“TargetServer.dbo.TableName”。 在所有需要修改数据SQL语句执行完毕后,可以使用COMMIT DISTRIBUTED TRANSACTION语句来提交事务,或者使用ROLLBACK DISTRIBUTED TRANSACTION语句来回滚事务。提交事务会将所有的修改操作应用到数据库,而回滚事务会撤销所有的修改操作。 需要注意的是,跨服务器修改数据可能会涉及到网络延迟和性能问题。为了提高性能,可以考虑使用合适的索引、优化查询语句和减少数据传输等方法。 总结来说,通过创建连接、使用分布式事务和使用目标服务器的名称来修改数据SQL语句,我们可以实现SQL Server跨服务器修改数据的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值