ADO.NET删除了sp_helptext输出?

时间:2010-05-11 10:54:47

标签: c# sql-server ado.net

我正在使用here描述的工具清理我们的开发数据库中的一些内容。我遇到了一个奇怪的问题,找不到原因。

对于某些存储过程,GetProcedureText方法(l:47,Validator.cs)无法返回proc文本,导致程序意外运行。调试并单步执行GetProcedureText时,很明显SqlCommand上对ExecuteReader的调用返回的SqlDataReader不包含结果集。问题是为什么......

从SSMS运行exec sp_helptext <proc name>会按预期返回proc文本。每次都会出现同样的问题。下面是展示此问题的一个过程,尽管问题似乎与ADO.NET而不是SQL Server有关。

USE [IL_Party_DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DeathCause_SelectByDeathCauseCode]
    @deathCauseCode [varchar](15)
AS
SELECT
    death_cause_code,
    description
FROM ilpr_Death_Cause
WHERE
    death_cause_code = @deathCauseCode

我正在使用SQL Server 2005.有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。在我的情况下,它似乎发生在对象的SQL中有错误,例如重命名的列或表。它将返回一个空结果,然后所有后续对象将返回一个空结果。我必须为每个数据库对象创建一个新的SqlConnection,以使其正常工作。不确定根本原因是什么,但这对我有用......