SQL存储过程跨数据库执行的问题.......

SQL存储过程跨数据库执行的问题.......,第1张

你这个代码 相当于是 两个部分 可以说是独立的 所以执行 显示肯定是当前的数据库名称

然后你说的这个需求实现肯定可以实现

你可以想象一下 假如a数据库里有一个存储过程 那么它 *** 作的肯定是a数据库里面的表或其他的

那么你要是在b数据库执行a数据库的存储过程的话 如果能成功 那么调用的还是a数据库里面的内容 影响也是a数据库里面的内容

如果你硬要这样做 可以在a数据库的存储过程里的表 跨数据库 写a数据库里面的表 a..表名

这样不管是在哪个数据库执行 表面上是a的存储过程 但影响的是b

如果存储过程是查询的话 把这个查询插入到别的数据库的话 这个就任何一个数据库都可以实现 很方便 否则其他的内容 肯定不行 只有我说的这样去做

为什么不在需要用到的数据库创建存储过程呢 (这样性能方面也会好很多的 实际应用中 可能存在你这样的需求 但肯定很少 极少)

如果你是想把存储过程这些程序搬到另外一个数据库的话,那就直接把这些存储过程另存为SQL文本,然后在另外一个数据库重新建立就是了。

如果你的意思是保持两个数据库数据的同步和一致,就可以考虑配置两个数据库之间的数据同步的一些方案,例如数据库复制、数据库数据文件的磁盘镜像等等技术方案,如果对高可用性HA要求非常高的系统,也可以考虑使用商业数据库系统的集群Cluster方案。

INSERT INTO DB2.TABLE_B SELECT * FROM

 (SELECT * FROM DB1.TABLE_A WHERE NOT EXISTS

   (SELECT 1 FROM DB2.TABLE_B

    WHERE DB1.TABLE_A.code = DB2.TABLE_B.code))


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6692385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存