gpt4 book ai didi

sql - 存储过程范围: using sp from another database

转载 作者:行者123 更新时间:2023-12-03 01:59:22 25 4
gpt4 key购买 nike

我在名为的数据库中有一个名为 PROC_fetchTableInfo 的存储过程(从 sys.tables 中简单选择)

Cust

我想在另一个名为的数据库中使用此过程

Dept

我尝试使用命令在此数据库中执行此 sp

EXECUTE Cust.dbo.PROC_fetchTableInfo

但结果我从数据库 Cust 中获取了表。如何让这个程序在数据库部门工作?

最佳答案

存储过程与其代码中的对象紧密绑定(bind)。如果 Cust.dbo.PROC_fetchTable 引用表 T,则严格来说是数据库中架构 dbo 中的表 T 客户。您可以从任何其他地方调用该过程,它将始终引用该表。

如果您需要在另一个数据库的另一个表中运行相同的过程,那么到目前为止,最好的解决方案是创建一个新过程:Dept.dbo.PROC_fetxTableInfo。这比使用 Dynamic-SQL 的替代方案更好。 。虽然从 DRY 和代码重用的角度来看,这似乎违反直觉,但 T-SQL 是一种数据访问语言,而不是一种编程语言,所以当您进入数据库时​​,请将您的 C/C# 思维模式留在门口。只需在 Dept 数据库中添加另一个过程即可。

关于sql - 存储过程范围: using sp from another database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3944564/

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