创建一个 table 或从 EXEC 语句查看 SQL 服务器
Create a table or view from EXEC statement SQL Server
EXEC('Select
trim(field1) field1
CVDATE(date1) date1
from tabel1
where trim(field1) <> 'ABC' ') at AE --linked server
我需要将 EXECUTION 语句生成的结果转储到视图中。这可能吗?我猜这样写查询是由于性能原因
您可以在远程服务器上使用 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
EXEC('Select
trim(field1) field1
CVDATE(date1) date1
from tabel1
where trim(field1) <> 'ABC' ') at AE --linked server
我需要将 EXECUTION 语句生成的结果转储到视图中。这可能吗?我猜这样写查询是由于性能原因
您可以在远程服务器上使用 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