需求:通过SQL语句直接删除远程服务器上的SQLSERVER数据
我的写法是:delete from table opendatasource('sqloledb','data source=server;password=sa;userid=sa').datasource.dbo.table where id in(select top 1000 id from opendatasource().datasource2.dbo.table2 a where a.id>1001 order by a.id) and id>1001
其中TOP 1000是分批删除数据,就是每次删除最多是1000条记录,但发现如果删除远程的数据些方法的也根本是没法运行的,就是太慢了。寻求更高的删除数据效率,各位高手多多帮忙先谢谢了
我的写法是:delete from table opendatasource('sqloledb','data source=server;password=sa;userid=sa').datasource.dbo.table where id in(select top 1000 id from opendatasource().datasource2.dbo.table2 a where a.id>1001 order by a.id) and id>1001
其中TOP 1000是分批删除数据,就是每次删除最多是1000条记录,但发现如果删除远程的数据些方法的也根本是没法运行的,就是太慢了。寻求更高的删除数据效率,各位高手多多帮忙先谢谢了
select * from 服務器名稱.數據庫名稱.dbo.表名
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
用openrowset
opendatasource只能用做查询用
现在删除的效率提高了,就是应用DELETE FROM OPENDATASOURCE().TABLE WHERE ID IN('','','','')这种方法,中间不能加入SELECT语句,用程序控制现在是INSERT INTO OPENDATASORUCE().TABLE 这种方法来插入到远程数据库里,的效率不知道什么样,还有openrowset的执行效率不知道如何?