Я работаю с множеством одинаковых баз данных, поэтому использую процедуру sp_MSforeachdb, чтобы получить информацию из таблицы.
Проблема, с которой я столкнулся, заключается в том, что существуют другие базы данных.на поле, в котором нет таблицы, поэтому я выкидываю недопустимые ошибки объекта.
Вот что у меня есть в данный момент, я фильтрую LoginDatabase, потому что у него та же таблица, но я неЯ не хочу этого в запросе.
Мой вопрос заключается в том, как я могу ограничить его только базами данных с таблицей, из которой я хочу получить информацию.
SET NOCOUNT ON
CREATE TABLE #tmpData
(
DbName VARCHAR(30),
DbVersion FLOAT
)
exec sp_msforeachdb @command1='
USE ?;
INSERT INTO #tmpData
SELECT ''?'', (SELECT Setting
FROM ?.dbo.gl_SysParams
WHERE Keyword = ''DatabaseSchema'')
FROM sysobjects o
WHERE type=''U''
AND [name] = ''gl_SysParams''
AND ''?'' <> ''LoginDatabase'' ORDER BY [name]
'
SET NOCOUNT OFF
SELECT DbName, DbVersion FROM #tmpData ORDER BY DbName
DROP TABLE #tmpData