gpt4 book ai didi

sql - 在 sql 脚本中使用数据库的名称作为完整的表名

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:21 25 4
gpt4 key购买 nike

纠结了一阵bug,后来在一段数据库存储过程代码中找到了原因,其中表名中包含了旧的数据库名称,而当前的数据库名称已经不同了。所以,我想问一下:

是否存在使用数据库名称作为完整表名称的一部分(数据库名称 + 架构名称 + 表名称)的情况(前提是我们不这样做) touch tables in other databases) or it is always a bad practice? 如何在 sql 脚本中正确使用数据库名称以使代码对特定数据库保持中立?

代码只是为了说明:

CREATE PROCEDURE [dbo].[MyProc] 
AS
BEGIN
DELETE FROM [MyDatabase].[dbo].[MyTable]
END

最佳答案

不,您不应该在存储过程中使用数据库名称,除非您需要处理两个数据库。

它会导致您所看到的错误类型。当数据库名称更改时,您的所有 SP 代码都会中断,或者继续工作,但在旧数据库上。

如果您向数据库发送 SQL 查询,这确实有意义,但前提是应用程序动态选择要插入查询的数据库名称。

我的建议是完全导出数据库架构,搜索硬编码的数据库名称并将其删除。

关于sql - 在 sql 脚本中使用数据库的名称作为完整的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8035277/

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