我可以在以下场景中使用部分数据库项目吗?
我有许多相互依赖的数据库。Database2 在 Database1 和 Database3 上执行 SP,Database3 在 Database2 上执行 SP。例如:
数据库 1 可以定义为:
CREATE TABLE [dbo].[X]
(
Id int NOT NULL,
X int NULL
)
CREATE PROCEDURE [dbo].[GetX]
AS
BEGIN
SELECT * FROM [dbo].[X]
END
数据库 2 可以定义为:
CREATE PROCEDURE [dbo].[GetX]
AS
BEGIN
EXEC [Database1].[dbo].[GetX]
END
CREATE PROCEDURE [dbo].[GetXY]
AS
BEGIN
EXEC [dbo].[GetX]
EXEC [Database3].[dbo].[GetY]
END
数据库 3 可以定义为:
CREATE TABLE [dbo].[Y]
(
Id int NOT NULL,
Y int NULL
)
CREATE PROCEDURE [dbo].[GetX]
AS
BEGIN
EXEC [Database2].[dbo].[GetX]
END
CREATE PROCEDURE [dbo].[GetY]
AS
BEGIN
SELECT * FROM [dbo].[Y]
END
因为 Database2 依赖于 Database3 和 Database2 上的 Database3,所以存在循环引用。我不确定部分项目在这里对我有什么帮助,因为如果我将 Database2 在基础对象和外部对象之间分开,我仍然会对外部项目进行循环引用。据我了解,这是不允许的。
为解释道歉,数据库也让我头疼。如果需要,我会尝试更详细。