gpt4 book ai didi

sql - 在 FROM 语句中使用变量

转载 作者:行者123 更新时间:2023-12-02 07:39:38 26 4
gpt4 key购买 nike

我正在尝试创建一个查询,该查询将针对 sys.server 中每个服务器的特定数据库中的特定表执行一次。

我想知道每个 server.database.dbo.table 的内容。

所以我需要的是:

declare @numrows int = (select count(*) from sys.servers)
declare @i int = 1

while @i <= @numrows
BEGIN
declare @servername varchar(max) = (select servernaam from #servers where rij = @i)

select * from @servername.DATABASE.DBO.TABLE

set @i = @i+1

END

但是,@servername.DATABASE.DBO.TABLE 中的@servername 似乎不起作用。

建议?谢谢你和我一起思考。

最佳答案

你必须使用动态sql:

declare @numrows int = (select count(*) from sys.servers)
declare @i int = 1
declare @Sql(1000)
declare @servername varchar(max)

while @i <= @numrows
BEGIN
select @servername = servernaam
from #servers where rij = @i

set @Sql = 'select * from '+@servername+'.DATABASE.DBO.TABLE'
exec(@Sql)

set @i = @i+1

END

Here是关于 exec 的更多信息。

关于sql - 在 FROM 语句中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12508973/

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