2011-01-19 81 views
1

添加FunctionImport当我无法获得从模型浏览器功能的进口列的信息,即使我可以看到SQL Server Management Studio中的结果来获取列信息。我在模型浏览器的StoredProcedures部分添加了StoredProcedure,当我添加函数import时,我点击GetColumnInformation,我得到这个“选定的存储过程不会返回任何列”。但是我正在执行存储过程,我可以看到结果。 我的项目是ASP.NET MVC2之一。我正在使用ADO.NET实体模型。无法在ModelBrowser

这是我创建

存储的过程

使用[MyDatabase的名称] GO
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO

ALTER PROCEDURE [DBO]。[我的存储过程名称] @startDate日期时间, @EndDate日期时间, @accountId INT, @healthPlanId INT
AS BEGIN
SET NOCOUNT ON; DECLARE @variableId as int; CREATE TABLE #TempAuditEvent( [AuditEvent_Id] [INT] NOT NULL, [TABLEID] [INT] NOT NULL, [Original_record] [XML] NOT NULL, [Current_record] [XML] NOT NULL, [ActionId] [INT] NOT NULL, [OccuredOn] [DATETIME] NOT NULL, [TriggeredBy] VARCHAR NOT NULL, [IsActive] [TINYINT] NOT NULL, [DateTime_Added] [DATETIME] NOT NULL, [Added_By] VARCHAR NOT NULL, [DateTime_Updated] [日期时间] NULL, [Updated_By] VARCHAR NULL, ); FOR
DECLARE variable_cursor CURSOR选择从ProductInfo p 不同bao.ba_Object_id加入上p.Product_Id = bas.ba_BLID baSelection BAS加入baObject宝上bas.ba_variable_Id = bao.ba_Object_id 其中(bao.ba_Object_Type_Id = 4或宝。 ba_Object_Type_Id = 6或bao.ba_Object_Type_Id = 22) 和p.AccountId = @accountId和p.IsProduct = 1 和bas.Health_Plan_ID = @healthPlanId; OPEN variable_cursor;

NEXT FROM variable_cursor 提取到@variableId;

WHILE @@ FETCH_STATUS = 0

BEGIN INSERT INTO #TempAuditEvent SELECT * FROM AuditEvent WHERE AuditEvent_Id在 ( (SELECT ae.AuditEvent_Id FROM vwProductChangesReport AE WHERE ae.DateTime_Added> = @的startDate和AE .DateTime_Updated < @endDate
AND((ae.TableId> = 12 AND ae.TableId < = 14)OR ae.TableId = 9 OR ae.TableId = 40 OR ae.TableId = 50 OR ae.TableId = 64 OR ae .TableId = 65) AND(ae.strCurrent LIKE '%Variable_Id = “' + CAST(@variableId为varchar(20))+ '” %' OR ae.strCurrent LIKE '%VariableId = “' + CAST(@variableId为varchar(20))+ '” %' OR ae.strCurrent LIKE '%BaObjectId =“' + CAST(@variableId为varchar(20) )+''%' 或ae。strCurrent LIKE'%ParentBaObjectId =''+ CAST(@variableId AS varchar(20))+''%' OR ae.strCurrent LIKE'%ObnId =''+ CAST(@variableId AS varchar(20))+'' %” OR ae.strCurrent LIKE '%Benefit_Variable_Id = “' + CAST(@variableId为varchar(20))+ '” %' ))

) FETCH NEXT FROM variable_cursor INTO @variableId; END CLOSE variable_cursor; DEALLOCATE variable_cursor;

SELECT * FROM #TempAuditEvent; DROP TABLE #TempAuditEvent;

END

回答

1

我可以通过添加 SET FMTONLY OFF到我的存储过程解决问题。它效果很好。