【发布时间】:2015-05-03 11:46:34
【问题描述】:
我有大量预先存在的 sql 选择语句。
从 [Server_A] 上的存储过程,我想在多个不同的 SQL Server 和数据库上执行这些语句中的每一个(列表存储在 [Server_A] 上的本地表中,并将结果返回到上的表中[服务器_A]。
但是,我不想在我的 sql 语句中使用完全限定的表名。我想执行“select * from users”,而不是“select * from ServerName.DatabaseName.SchemaName.Users”
我使用 Openrowset 进行了调查,但我找不到任何可以将服务器名称和数据库名称都指定为作为连接的属性的示例,而不是物理嵌入到实际 SQL 中声明。
Openrowset 能做到这一点吗?是否有其他方法可以做到这一点(从存储过程中,而不是诉诸 Powershell 或其他一些非常不同的方法?)
不可避免的“我为什么要这样做?”
- 你可以做到(在连接中指定服务器和数据库 属性,然后在所有数据库中使用完全通用的 sql) 几乎所有其他访问 SQL Server 的语言。
- 将我所有预先存在的复杂 SQL 更改为完全限定是一个 巨大的 PITA(此外,您根本不应该这样做)
【问题讨论】:
-
为什么不使用完全限定名?求朋友。
-
ddddd 抱歉不知道如何删除评论
-
为什么不使用完全限定?嗯,因为我正在对多个数据库执行大型预先存在的非完全限定 SQL?
标签: sql-server tsql