2010-05-11 5 views
1

Я использую инструмент, описанный here, чтобы очистить некоторые трещины от наших БД разработки. Я столкнулся с нечетной проблемой и не могу найти причину.sp_helptext вывод, отбрасываемый ADO.NET?

Для некоторых хранимых процедур метод GetProcedureText (l: 47, Validator.cs) не может вернуть текст proc, в результате чего программа будет вести себя непредсказуемо. При отладке и вступлении в GetProcedureText становится ясно, что SqlDataReader, возвращенный вызовом ExecuteReader в SqlCommand, не содержит набора результатов. Вопрос в том, почему ..

Выполнение exec sp_helptext <proc name> из SSMS возвращает текст 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. Любые идеи?

+0

FYI: След на сервере SQL показывает, что выполняется sp_helptext. У затронутых SP нет специальных разрешений, и я подключаюсь как sa. – bszom

ответ

1

Я столкнулся с той же проблемой. В моем случае это произошло, когда в SQL-объекте произошла ошибка, например, переименованный столбец или таблица. Он вернет пустой результат, затем все последующие объекты вернут пустой результат. Мне пришлось создать новый SqlConnection для каждого объекта базы данных, чтобы он работал правильно. Не знаю, в чем причина, но это сработало для меня ...

+0

Это звучит ужасно - тем более, что целью этого инструмента является найти те недопустимые объекты. Спасибо за подсказку, хотя, я попробую! – bszom

Смежные вопросы