Есть ли более идеальный способ запроса данных из другой базы данных с использованием SQL Server 2005? - PullRequest
0 голосов
/ 11 августа 2010

У меня есть хранимая процедура, которая получает данные из другой базы данных на том же сервере.

Я не буду жестко задавать какую базу данных использовать, вместо этого она будет настраиваемой.Возможно ли это без динамического sql?

Лучшее решение, которое я мог придумать, - это сначала запустить хранимую процедуру, которая использует динамический sql для генерации группы представлений.Затем я могу выбрать данные из этих представлений, чтобы избежать использования динамического SQL для всего.

Пример:

DECLARE 
    @databaseName nvarchar(max),
    @sql          nvarchar(max)

-- Get this value from a configuration table
SET @databaseName = 'TestDatabase'

IF EXISTS(SELECT NULL FROM dbo.SysObjects WHERE [Name] = 'TestView')
    DROP VIEW dbo.TestView

SET @sql = 'CREATE VIEW dbo.TestView AS SELECT * FROM ' + @databaseName +'.dbo.TestTable'

EXEC (@sql)

--I can now select from TestView using regular query.

Я предполагаю, что поступаю неправильно.Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 11 августа 2010

Вы можете использовать

OPENQUERY или OPENROWSET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...