向大家请教个问题!献上200分
INSERT INTO openrowset('sqloledb','域名';'sa';'PWD','SELECT Number,Name,Sex,Birth_Date,Dept_Number,State,type,enable FROM Hz_ware.Dbo.Ware_Person') SELECT A.Person_Number,A.person_name,A.sex,B.BirthDate,B.bumen_bh,'起用','内网','1' FROM inserted A left join employee B on A.person_number=B.gh sp_configure 'show advanced options',1reconfiguresp_configure 'Ad Hoc Distributed Queries',1reconfigure with override
[解决办法]
我在2000和2005之间处理大量数据的导入和导出,
链接服务器和openrowset的执行效果是一样的。
两种方法都不支持远程过程调用
触发器中访问远程服务器和类似调用远程过程,所以会出错。
[解决办法]
utility
[解决办法]
路过…
[解决办法]
异地链接数据库。
[解决办法]
good
[解决办法]
对OPENROWSET不熟,帮顶一下吧。感觉LZ数据库的设计有问题,不应该用触发器实现异机同步。一旦出了错就不好调。2008的话试试新功能更改跟踪吧。
[解决办法]
路过,跨服务器~~没有碰过啊
[解决办法]
我最近也在被这个问题困扰着……
------解决方案--------------------
观摩了 学习了。
[解决办法]
在学,sql,楼主的问题很高级耶
[解决办法]
学习了,呵呵
[解决办法]
没弄过,学习一下
[解决办法]
都是高手啊
[解决办法]
高手云集,学习学习
[解决办法]
自己的测试数据库就是2008的,但不知道怎么配置,帮顶了
[解决办法]
关注中。。。
[解决办法]
帮顶。
[解决办法]
没有用过sql2008,帮忙顶一下
[解决办法]
--SQL2000下pubs库测试新建表[employee2]CREATE TABLE [dbo].[employee2] ( [emp_id] [varchar] NOT NULL , [fname] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [minit] [char] (1) COLLATE Chinese_PRC_CI_AS NULL , [lname] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [job_id] [smallint] NOT NULL , [job_lvl] [tinyint] NULL , [pub_id] [char] (4) COLLATE Chinese_PRC_CI_AS NOT NULL , [hire_date] [datetime] NOT NULL ) ON [PRIMARY]GO--执行事务OKBEGIN TRANSELECT * FROM openrowset('sqloledb','10.0.0.0\cl2k,1444';'sa';'cl2k','SELECT * FROM pubs..employee')ROLLBACK TRAN--执行事务OKinsert into openrowset('sqloledb','10.0.0.0\cl2k,1444';'sa';'cl2k','SELECT * FROM pubs..employee2')select b.* from (select '8' emp_id,'Paolp' fname,'M' minit,'Accorti' lname,13 job_id,35 job_lvl,'0877' pub_id,'1992-08-27 00:00:00.000' hire_date) aright join openrowset('sqloledb','10.0.0.0\cl2k,1444';'sa';'cl2k','SELECT left(emp_id,1) emp_id,fname,minit,lname,job_id,job_lvl,pub_id,hire_date FROM pubs..employee') B on A.fname=B.fname --(43 行受影响)
[解决办法]
4、联机丛书内容:
[解决办法]
因为本机是Windows2008配置MS DTC 分布式事务比较复杂,下文说明在Windows2003中的配置步骤和方式:
请LZ在配置完成后,尝试执行
INSERT INTO employee(gh,NAME)SELECT 'L10598','SAD'
[解决办法]
帮顶,
[解决办法]
在SQL2008中执行语句报错,接下来配置SQL2000和SQL2008所在OS的MSDTC。
INSERT INTO employee(gh,NAME)
SELECT 'L10598','SAD'
--6打开Windows系统,运行输入comexp.msc并回车。配置系统的MSDTC完毕,配置方式按56楼内容。
--下载DTCPing工具检测,结果不通。检查并解决问题的关键步骤如下:
在双方OS中配置网络连接中的WINS选项卡,启用NETBios。因服务器的关系,我通常都关闭它。
注:不过最后检查的时候发现,该选项间接对MSDTC事务有影响。如果默认开启则不管它。
最后说明,双方OS一定要关闭防火墙,否则执行报错,提示没有活动事务。
--7 执行提示成功:
INSERT INTO employee(gh,NAME)
SELECT 'L10598','SAD'
(1 行受影响)
(1 行受影响)
--8 查询执行结果如下:
select * from openrowset('sqloledb','10.0.0.214\cl2k,1444';'sa';'cl2k','SELECT * FROM tempdb.dbo.employee')
--result:
gh NAME
------ ----
L10598 xxx
(1 行受影响)
--总结:
按楼主的方式语句没有问题,是否SET XACT_ABORT ON都不是关键,主要是OS对分布式事务的配置(MSDTC)。
基本要求是双方OS必须启用MSDTC,并按相同模式配置,比如56楼第3图所示,登录账户为networkService,不能启用防火墙,在TCP/ip的WINS选项卡中开启NETbios。
--EOF
[解决办法]
关闭防火墙最好了
把服务设为防火墙的例外好像不大好使……
[解决办法]
高手云集了。
[解决办法]
注1:本机SQL2008配置参数:
select quotename(name) name,value_in_use from sys.configurations where name in ('Ad Hoc Distributed Queries','cross db ownership chaining','remote proc trans')--result:name value_in_use[cross db ownership chaining] 0[remote proc trans] 0[Ad Hoc Distributed Queries] 1
[解决办法]
莫非大家都有压力,没人回答。
还没用过2008!
[解决办法]
大家都很忙啊
[解决办法]
不懂,只能邦顶了~~~~
[解决办法]
hao
[解决办法]
还没用过2008!
[解决办法]
好的,谢谢
[解决办法]
哇,这里真是高手多啊。呵呵
[解决办法]
这帖推荐的目的是什么??
[解决办法]
每天十分啊。
[解决办法]
sql2000没有异常处理的
[解决办法]
学习了。。
[解决办法]
厉害,学习一下
[解决办法]
[解决办法]
没用过触发器
[解决办法]
没用过触发器
------解决方案--------------------
试一试吧,有问题再聊。
[解决办法]
openrowset,这个函数很少用,但是既然楼主用的是2008的,我觉得有另外一种途径可以实现数据的导入导出。右击database,task,import/export.就可以实现了。
[解决办法]
没用过
[解决办法]
好~~很好~~好强大~~
[解决办法]
在两台服务器(安装的winserver2003操作系统)中运行中输入comexp.msc,提示提示找不到这个程序。
在windows2008的运行中输入comexp.msc即打开组件服务对话框,2003好像是无法直接打开(需要设置这里不说)但可以在控制面板-管理工具-组件服务打开。
2:在两台服务器中下载了DTCPing工具,在远程服务器中输入"域名",再点“开始服务”都是一样的提示"DTCping server is ready to take incoming calls",这没连上吧。
这里先不讨论这个工具,因为内外网的使用还涉及其他因素。我之前的测试环境之所以放在内网是撇开内外网的环境因素,如何将外网转为内网可以用VPN实现(这里忽略)。
3:在两台服务器中都设置了"WINS选项卡,启用NETBios。",防火墙也关了。不知要不要重启电脑?但执行还是提示。。。
这里不需要重启机器。执行提示已经改变,应该是SQL2008所在OS配置的问题。
[cross db ownership chaining] 1
[remote proc trans] 1
[Ad Hoc Distributed Queries] 1
和你的结果不一样?不知要怎么设置呀?
sp_configure 'cross db ownership chaining',0reconfigure with overridesp_configure 'remote proc trans',0reconfigure with override
[解决办法]