【发布时间】:2014-12-24 07:41:45
【问题描述】:
我有一个计划用于 SSRS 的存储过程,其中包含 50 多个不同的列。我有另一个执行它的过程,我打算插入结果表,但我需要事先知道列名。当我尝试执行时,我收到一条错误消息:
列名或提供的值数量与表定义不匹配。
我怀疑这是因为我的一列数据类型不正确。如何确定这些列用于创建我的表的确切数据类型?
我的插入语句:
insert into @resultset
exec my_proc
【问题讨论】:
-
我认为您缺少一列或有一个额外的列 - 对于数据类型问题,您会收到不同的错误消息。您使用的是什么版本的 SQL Server?你为什么要标记这个
mysql? -
@AaronBertrand 目前在 SQL server management studio 2008 上,我将删除标签,意思是说 microsoft sql。由于错误不是很详细,我该如何提取这些过程列?
-
嗯,最简单的方法是查看存储过程,并计算最终
SELECT中的列数,并检查至少计数是否与@resultset的定义匹配,然后继续从那里。这些输出并没有真正存储在 SQL Server 元数据though there are helper functions in SQL Server 2012 that could help you when you upgrade 的任何位置。
标签: sql-server stored-procedures sqldatatypes