感谢回复,添加事务的我也曾试过,还是会报错报错内容:未更新任何行。未提交行N中的数据。错误源:.Net SqlClient Data Provider。错误消息:对象名'我的数据库.dbo.B'无效。触发器体如下begin tran
begin try
insert into 我的数据库.dbo.B()
select *
from A where A.Record_ID = (select Record_ID from inserted)
commit
end try
begin catch
rollback
end catch
解决方案 »
- 存储过程编译不通过
- 短信平台二次开发采用哪种方式最好?
- 有没有办法让表变量具有某个table的结构
- 我有一字段(int)记录日期,日期是通过datediff(day,'1899-12-30','2005-11-15')转换来的,我想转换成具体日期怎么办?
- 如何获取生成一个trigger的Script
- 搜索结果带合计
- 如何建立一个(sqlserver)远程数据库的客户端,我知道远程数据库的IP,用户名,和密码?谢谢了
- 在企业管理器上的打开数据库数据库的问题
- sqlserver中令人费解的问题
- 一个SQL的优化!急!救命!
- 想了1天还是没想到这个语句怎么写,有谁能帮我看下吗
- sql唯一性约束如何建立?
create table t1(id int)
create table t2(id int)
go
create trigger dbo.trigger_t1
on t1
for insert
as
commit;select 1/ 0 --会报错insert into t2
select *
from inserted
go
insert into t1
values(100)
/*
消息 8134,级别 16,状态 1,过程 trigger_t1,第 9 行
遇到以零作除数错误。
语句已终止。
*/
go
--插入成功
select *
from t1
/*
id
100
*/--但是t2表由于:select 1/ 0 报错,导致后面的插入语句没有执行
select *
from t2
/*
*/
感谢回复,添加事务的我也曾试过,还是会报错报错内容:未更新任何行。未提交行N中的数据。错误源:.Net SqlClient Data Provider。错误消息:对象名'我的数据库.dbo.B'无效。触发器体如下begin tran
begin try
insert into 我的数据库.dbo.B()
select *
from A where A.Record_ID = (select Record_ID from inserted)
commit
end try
begin catch
rollback
end catch加一个commit就行,然后再插入远程表的数据
如果有这样的需求,那就不用触发器,反正你的B表也不实时更新
定时更新B就可以了
insert into 链接服务器名.库名.dbo.b(对应列名)
感谢回复,添加事务的我也曾试过,还是会报错报错内容:未更新任何行。未提交行N中的数据。错误源:.Net SqlClient Data Provider。错误消息:对象名'我的数据库.dbo.B'无效。触发器体如下begin tran
begin try
insert into 我的数据库.dbo.B()
select *
from A where A.Record_ID = (select Record_ID from inserted)
commit
end try
begin catch
rollback
end catch加一个commit就行,然后再插入远程表的数据
十分感觉这楼回复,添加commit的确可以把数据录入到表A
但是还是有问题,就是还是会抛出报错。这样对客户的还是有影响
感谢回复,添加事务的我也曾试过,还是会报错报错内容:未更新任何行。未提交行N中的数据。错误源:.Net SqlClient Data Provider。错误消息:对象名'我的数据库.dbo.B'无效。触发器体如下begin tran
begin try
insert into 我的数据库.dbo.B()
select *
from A where A.Record_ID = (select Record_ID from inserted)
commit
end try
begin catch
rollback
end catch加一个commit就行,然后再插入远程表的数据
十分感觉这楼回复,添加commit的确可以把数据录入到表A
但是还是有问题,就是还是会抛出报错。这样对客户的还是有影响哦 报错后,确实会抛出异常,你的意思是,你不想抛出异常?
感谢回复,添加事务的我也曾试过,还是会报错报错内容:未更新任何行。未提交行N中的数据。错误源:.Net SqlClient Data Provider。错误消息:对象名'我的数据库.dbo.B'无效。触发器体如下begin tran
begin try
insert into 我的数据库.dbo.B()
select *
from A where A.Record_ID = (select Record_ID from inserted)
commit
end try
begin catch
rollback
end catch加一个commit就行,然后再插入远程表的数据
十分感觉这楼回复,添加commit的确可以把数据录入到表A
但是还是有问题,就是还是会抛出报错。这样对客户的还是有影响哦 报错后,确实会抛出异常,你的意思是,你不想抛出异常?是的,不想抛出异常,我提出这种异常,其严重性级别,是否不能由 Try Catch 处理掉?谢谢
感谢回复,添加事务的我也曾试过,还是会报错报错内容:未更新任何行。未提交行N中的数据。错误源:.Net SqlClient Data Provider。错误消息:对象名'我的数据库.dbo.B'无效。触发器体如下begin tran
begin try
insert into 我的数据库.dbo.B()
select *
from A where A.Record_ID = (select Record_ID from inserted)
commit
end try
begin catch
rollback
end catch加一个commit就行,然后再插入远程表的数据
十分感觉这楼回复,添加commit的确可以把数据录入到表A
但是还是有问题,就是还是会抛出报错。这样对客户的还是有影响哦 报错后,确实会抛出异常,你的意思是,你不想抛出异常?是的,不想抛出异常,我提出这种异常,其严重性级别,是否不能由 Try Catch 处理掉?谢谢应该是不能被捕获。这种情况只能是在你的插入语句的外面加上begin try,比如:begin tryinsert into 表
end trybegin catch
捕获错误
end catch
使用触发器实现同步,的确会存在意外。那时候是为了想加工数据。
最后使用MS-SQL的,复制 - 本地发布 与 本地订阅 实现,数据同步,在自身项目下,再添加触发器进行数据加工。
感谢各位。特别感谢yupeigu