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

EXECUTION 문의 결과를 뷰로 덤프해야합니다. 이것이 가능한가? 이 방법으로 작성된 쿼리는 성능상의 이유로 인한 것입니다.EXEC 명령문에서 테이블 또는 뷰 만들기

답변

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