gpt4 book ai didi

sql - 动态 SQL - 根据参数查询不同的数据库

转载 作者:行者123 更新时间:2023-12-04 06:13:54 24 4
gpt4 key购买 nike

我有一种情况,根据传递给存储过程的参数,我需要从 100 多个数据库(都具有完全相同的架构)之一获取数据。

我一直在尝试这样做的方法是构建一个动态 SQL 语句来执行 sp_executesql :

(这只是一个测试脚本顺便说一句):

declare @sql nvarchar(1000)
set @sql = 'select top 10 * from [SERVER].@dbName.dbo.[LL]'
exec sp_executesql @sql, N'@dbName nvarchar(50)', @dbName = N'[TheDatabase1]'

这给出了错误 Incorrect syntax near '@dbName'.
还有其他我可以考虑的选择吗?

PS - 数据库架构不在我的控制范围内。

最佳答案

您不能参数化数据库名称 - 您需要直接连接它。

set @sql = 'select top 10 * from [SERVER].' + N'[TheDatabase1]' + '.dbo.[LL]'

Here是 Erland Sommarskog 撰写的关于动态 SQL 的非常好的(虽然很长)文章。

关于sql - 动态 SQL - 根据参数查询不同的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7483403/

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