gpt4 book ai didi

c# - 无法检测到存储过程返回类型

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:35 25 4
gpt4 key购买 nike

我试图将此过程拖到 VS 2012 中的 dbml 中,但我收到无法检测到返回类型的消息。

我试过这些: LINQ to SQL - Stored Procedure Return Type Error The return types for the following stored procedures could not be detected

我尝试将过程重写为 CTE 和联合以删除 OR,但它给了我同样的信息。

该方法的设计器属性中的唯一返回类型是 int32。

这是我的程序:

ALTER PROCEDURE [dbo].[GetStringFromFiles]
@SearchWord NVARCHAR(100) = null
AS
BEGIN

SET NOCOUNT ON
SET @SearchWord = UPPER(@SearchWord);

Select
a.FileId <---Guid
, a.FileData <---Binary
, a.BaselineId <---Guid
, a.FileName <---NVARCHAR
, a.FileExtension <---NVARCHAR
, b.FileByItemId <----Guid
, b.ItemId <---Guid
From FileTable a

Inner Join

FileByItem b on a.FileId = b.FileId

WHERE CONTAINS(a.FileData,'FORMSOF(INFLECTIONAL, @SearchWord)') or FREETEXT(a.FileData, @SearchWord)
RETURN 1
END

更新:

一个。如果我注释掉整个 Where 子句,我可以添加它 -- Auto-Generated-ReturnType

B.如果我拿走 or 并只使用:

WHERE CONTAINS(a.FileData,'FORMSOF(INFLECTIONAL, @SearchWord)')

它让我添加它 -- Auto-Generated-ReturnType

C.如果我只是使用

WHERE FREETEXT(a.FileData, @SearchWord)

它抛出错误,所以它不喜欢 FREETEXT

如果我注释掉 where 子句并添加它并让它生成返回类型然后更改数据库中的过程是否有任何问题?

最佳答案

这有点相关。我今天偶然发现了同样的错误,但出于不同的原因。如果您的查询在其结果中使用临时表,则它无法自动分配返回类型。

我将其更改为表变量(性能不是主要问题/并且没有受到影响)

希望这有助于浏览。

关于c# - 无法检测到存储过程返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com