我有2个SQL Server 2005,我想将数据从A提取到B。
我在B。上执行此代码:
create table #res (
ValueID int,
[Timestamp] varchar(32),
RealValue float,
Quality int,
Flags int
);
insert into #res(ValueId, [Timestamp], [RealValue], [Quality], [Flags])
exec ('exec [CC_ExternalBrowsing].[dbo].[cc_sp_readtags] @List=''1;2;3;4;5'', @TimeBegin=''0000-00-00 00:05:00.000'', @TimeEnd=''0000-00-00 00:00:00.000''') AT [WINCCTESZT]
select * from #res;
drop table #res
执行部分运行正常(没有前一个插入行)。我可以在SSMS中看到数据,但我无法将数据插入临时表
我收到此错误:
无法在事务中执行'sys.addlinkedserver'过程。
有什么想法吗?
由于
醉
答案 0 :(得分:0)
使用表值变量而不是显式Temp表 - 因为在事务中不能进行表创建。试试这个:
declare @res table (
ValueID int,
[Timestamp] varchar(32),
RealValue float,
Quality int,
Flags int
);
insert into @res(ValueId, [Timestamp], [RealValue], [Quality], [Flags])
exec ('exec [CC_ExternalBrowsing].[dbo].[cc_sp_readtags] @List=''1;2;3;4;5'', @TimeBegin=''0000-00-00 00:05:00.000'', @TimeEnd=''0000-00-00 00:00:00.000''') AT [WINCCTESZT]
select * from @res;
-- drop table @res -- no longer needed