2017-02-07 2 views
1
EXEC('Select 
      trim(field1) field1 
      CVDATE(date1) date1 
     from tabel1 
     where trim(field1) <> 'ABC' ') at AE --linked server 

Мне нужно вывести результат, сгенерированный из инструкции EXECUTION, в представление. Это возможно? Я предполагаю, что запрос написан таким образом из-за причин производительности.Создать таблицу или представление из инструкции EXEC SQL Server

ответ

1

Вы можете использовать openquery для запуска SELECT на удаленном сервере и создания представления из набора результатов.

Вот пример кода. Образец создает local1 в качестве связанного сервера и выполняет запрос на нем. Если у вас уже зарегистрирован ваш зарегистрированный сервер, вам не нужно выполнять шаги 1 и 4.

-- Step 1. register a linked server 
exec sp_addlinkedserver 
     @server = 'local1', 
     @srvproduct = '', 
     @provider='SQLNCLI', 
     @datasrc = 'NameOfTheRemoteServer' -- if server has multiple instances use 'NameOfTheServer\NameOfTheInstance' 
go 

-- Step 2. run the query on remote server and create a view out of the results 
create view ViewTest 
as 
select * from openquery(
    local1, 
    'select 
     top 10 
     lower(AddressLine1) as Street, 
     ModifiedDate as dt 
    from AdventureWorks2014.Person.Address' 
    ) 
go 

-- Step 3. check the view 
select * from ViewTest 
go 

-- Step 4. finally drop the linked server 
sp_dropserver 'local1' 
go 
Смежные вопросы