【发布时间】:2011-02-18 02:18:35
【问题描述】:
我正在使用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。有什么想法吗?
【问题讨论】:
-
仅供参考:SQL 服务器上的跟踪显示正在执行 sp_helptext。受影响的 SP 没有特殊权限,我以 sa 身份连接。
标签: c# sql-server ado.net