nir*_*rav 5 sql-server-2008-r2
我在db1和 中有一个通用的产品表db2。我想把它做成一张桌子,因为它有一个库存(产品库存)。在两个不同的数据库之间共享产品表的最佳解决方案是什么?我有几个想法:
你能指导我走最好的路吗?
我只会在 db2 中创建一个同义词(假设该表存在于 db1 中)。这将使您直接指向源表,而无需在视图后面进行混淆,并且如果表的架构发生更改,您将无需维护视图:
CREATE SYNONYM dbo.CommonTableName FOR db1.dbo.CommonTableName
Run Code Online (Sandbox Code Playgroud)
在第二个数据库中创建一个同义词,指向第一个数据库中的表。通过这种方式,您可以无缝地将两个数据库中的表用于任何操作(插入、更新、删除、选择等)。
CREATE DATABASE FirstDB ;
CREATE DATABASE SecondDB ;
GO
USE FirstDB;
GO
CREATE TABLE Products(id INT IDENTITY PRIMARY KEY);
GO
USE SecondDB;
-- Create a synonym to be able to reach the product table from the second database
CREATE SYNONYM dbo.Products FOR FirstDB.dbo.Products;
-- Add some values to the common table, available from both databases
INSERT Products DEFAULT VALUES;
INSERT Products DEFAULT VALUES;
INSERT Products DEFAULT VALUES;
-- any statement is available for both databases
SELECT * FROM FirstDb.dbo.Products;
SELECT * FROM SecondDB.dbo.Products;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |