Sql 查找特定行所在的数据库
我有多个具有相同模式的数据库。所有数据库都有一个名为Sql 查找特定行所在的数据库,sql,sql-server,Sql,Sql Server,我有多个具有相同模式的数据库。所有数据库都有一个名为发票的表。该表的Id是GUID,因此不存在重复项 不管怎样,假设我有Db1、Db2。。。Dbx我想知道ID为=“XF4G-XF78-2156-7XH8”的发票在哪个数据库上 找到包含该发票的数据库后,如何执行foreach语句并退出循环 DECLARE @sql NVARCHAR(2000) DECLARE @lookup NVARCHAR(20) = 'XF4G-XF78-2156-7XH8' SET @sql = 'IF OBJECT_I
发票的表。该表的Id是GUID,因此不存在重复项
不管怎样,假设我有Db1、Db2。。。Dbx我想知道ID为=“XF4G-XF78-2156-7XH8”的发票在哪个数据库上
找到包含该发票的数据库后,如何执行foreach语句并退出循环
DECLARE @sql NVARCHAR(2000)
DECLARE @lookup NVARCHAR(20) = 'XF4G-XF78-2156-7XH8'
SET @sql = 'IF OBJECT_ID(''[?].dbo.Invoices'') IS NOT NULL SELECT ''?'' FROM [?].dbo.Invoices WHERE ID=''' + @Lookup + ''''
EXEC dbo.sp_MsForEachDb @sql
怎么样?Dbo是假定的所有者。如果这是错误的,请更改为正确的所有者
编辑
多亏了你的回答,我做的很好
DECLARE @sql NVARCHAR(2000)
SET @sql = '
IF OBJECT_ID(''[?].dbo.Invoices'') IS NOT NULL
begin
declare @query NVARCHAR(255)
Select @query = (Select [Id] from [?].dbo.Invoices where [Id] = 'XF4G-XF78-2156-7XH8'')
IF @query IS NOT NULL
begin
print ''Database = '' + ''?''
end
end
'
EXEC dbo.sp_MsForEachDb @sql
现在我知道发票属于哪个数据库了 您需要一些脚本语言来实现这一点-bash、php、powershellRDBMS供应商和版本?这是可以与MySQL…+1感谢它的工作非常好。但是一旦我找到了记录,我如何从哪个数据库知道它是什么?