She*_*bin 23
只要设计人员无法确定SP的返回类型,就会出现此问题.此处
描述的相同问题和解决方案
如何使用LINQ to SQL获取多个过程结果集
小智 15
我在我的SQL中使用临时表并且遇到了这个错误.我将临时表转换为表变量,这解决了我的问题.
Ond*_*sky 14
这也可能是访问权限的问题.如果存储过程无法访问该表,则会出现相同的错误.我有一个查询从另一个我没有权限的数据库中选择数据(实际上运行Visual Studio连接的帐户没有权限)我收到了同样的错误.添加适当的权利后一切都很顺利.
尝试在VS2010中执行存储过程(通过右键单击Server Explorer并选择"Execute")帮助我解决了这个问题.
Nul*_*ter 14
在参数声明后立即添加这些行
AS
IF 1=0 BEGIN
SET FMTONLY OFF
END
Run Code Online (Sandbox Code Playgroud)
在此之后,写下BEGIN并开始您的程序工作.
原因:您的存储过程将返回复杂类型.也就是说,多个结果或使用临时表.
解析度
这完全取决于您的存储过程正在执行的操作.有用的链接
我刚刚为我的DBML添加了大约300个存储过程,并且遇到了许多此处和其他地方提到的问题.
以下是根据我个人经历的错误"无法检测到以下存储过程的返回类型"的错误原因和解决方案的摘要.请注意,下面描述的问题可能出现在您遇到错误的SP中,或者直接或间接从该SP调用的任何其他SP.
为了防止其他人遇到这个问题,我自己也经历过.
在我的例子中,我在一个插入语句中引用了一个表,该表在我的模式中不再存在.仔细检查我的代码后发现我插入了一个名为"Account"的表,现在称为"tblAccount".Visual Studio在保存sp时没有出错,但是在尝试将sp添加到dbml文件时遇到了同样的错误.
希望这会帮助其他人.
我也有这个问题 - 必须注释掉构造多边形的代码:
declare
@MapBounds geography
;
select
@MapBounds = geography::STGeomFromText('POLYGON((' +
cast(@NorthEastLng as varchar) + ' ' + cast(@NorthEastLat as varchar) + ', ' +
cast(@SouthWestLng as varchar) + ' ' + cast(@NorthEastLat as varchar) + ', ' +
cast(@SouthWestLng as varchar) + ' ' + cast(@SouthWestLat as varchar) + ', ' +
cast(@NorthEastLng as varchar) + ' ' + cast(@SouthWestLat as varchar) + ', ' +
cast(@NorthEastLng as varchar) + ' ' + cast(@NorthEastLat as varchar) +
'))', 4326)
;
Run Code Online (Sandbox Code Playgroud)
一旦它被添加到dmbl,我没有注释掉代码,它就像一个冠军!
我也有问题(VS 2012,SQL Server 2008R2).在我的例子中,它是+
运算符和CAST
代码中的各种语句的组合.我还没有找到用VisualStudio喜欢的东西替换它们的方法,但我想出了一个解决方法:
解决方法"Dummy SELECT":
select 'bla bla' as field1, 123123 as field2, 'asñfs' as field3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29517 次 |
最近记录: |