我有一个非常离奇的错误,我无法理解。
以下T-SQL:
CREATE TABLE #Contribs ( ID VARCHAR(100), Contribution FLOAT )
INSERT INTO #Contribs
EXEC [linkedserver].[catalogue].[schema].LocalContrib
SELECT * FROM #Contribs
在我的服务器中创建一个简单的临时表,用来自链接服务器的数据填充它并查看数据。
当我自己运行远程过程时,它为我提供了(text,float)对的列表。
当我在没有请求实际执行计划的情况下运行整个T-SQL时,它会在临时表中正确显示这个对列表。
当我运行整个T-SQL 及其实际执行计划时,它会失败并返回消息'列名或提供的值的数量与表定义不匹配'。
有谁知道为什么会这样或者我能做些什么呢?对我来说,执行计划的显示应该干扰语句本身的执行似乎是不正常的。这很烦人,因为我希望检查包含此代码的父存储过程的执行计划。我不知道内部调用的“LocalContrib”程序是什么样的,我正在运行SQL Server 2012.
感谢。