使用SQL SERVER 添加一个存储过程 将数据循环插入到另一个服务器 255

使用SQLSERVER添加一个存储过程查询t_log表里面是否有数据有则将t_log表ID对应t_test表ID的数据插入的到另一链接服务器并删除t_log里面的记录... 使用SQL SERVER 添加一个存储过程查询t_log表里面是否有数据 有则将t_log表 ID
对应t_test表 ID 的数据插入的到另一链接服务器 并删除t_log里面的记录
展开
 我来答
百度网友0ba9ea42f
推荐于2018-04-11 · TA获得超过240个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:173万
展开全部

方案1:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [InsertData]

AS
BEGIN
    exec sp_addlinkedserver 'yuancheng','','SQLOLEDB','远程IP'  
    exec sp_addlinkedsrvlogin 'yuancheng','false',null,'远程数据库帐号','远程数据库密码'

    select * into yuancheng.数据库名.dbo.t_test from t_log
    delete from t_log
    exec sp_dropserver 'yuancheng','droplogins'  
END

方案2:

先开启Ad Hoc Distributed Queries组件

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

然后创建存储过程

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [InsertData]

AS
BEGIN
    insert into openrowset('SQLOLEDB' ,'远程IP';'远程帐号';'远程密码',数据库名.dbo.t_test) select * from t_log
    delete from t_log
END
GO

 注意,如果远程的t_test表中有主键自增ID,必须先取消此列的标识属性,或者将除了主键列外的字段名在insert语句中列出,不过这样做就不能保证两边数据库的ID一致了

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式