gpt4 book ai didi

sql-server - 将表值参数传递给跨不同数据库的存储过程

转载 作者:行者123 更新时间:2023-12-02 10:12:56 25 4
gpt4 key购买 nike

我使用的是SQL Server 2008

如何将表值参数传递到不同数据库但同一服务器上的存储过程

我应该在两个数据库中创建相同的表类型吗?

请根据问题给出示例或链接。

感谢您的任何帮助。

最佳答案

回应此评论(如果我是正确的并且在数据库之间使用 TVP 是不可能的):

What choice do I have in this situation? Using XML type?

最纯粹的方法是,如果两个数据库都使用相同的数据,则应该将它们合并到一个数据库中。实用主义者意识到这并不总是可能的 - 但由于您显然可以更改调用者和被调用者,也许只需使用两个存储过程都知道的临时表。

<小时/>

I don't believe it's possible - you can't reference a table type from another database, and even with identical type definitions in both DBs, a value of one type isn't assignable to the other.

<小时/>

您不会在数据库之间传递临时表。临时表始终存储在 tempdb 中,并且只要连接打开且临时表未删除,您的连接就可以访问该临时表。

因此,您在调用者中创建临时表:

CREATE TABLE #Values (ID int not null,ColA varchar(10) not null)
INSERT INTO #Values (ID,ColA)
/* Whatever you do to populate the table */
EXEC OtherDB..OtherProc

然后在被调用者中:

CREATE PROCEDURE OtherProc
/* No parameter passed */
AS
SELECT * from #Values

关于sql-server - 将表值参数传递给跨不同数据库的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9531769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com