#c# #.net #sql-server-2008
#c# #.net #sql-server-2008
Вопрос:
Возможно ли получить stored procedure
с помощью c #?
Что мне нужно сделать, так это выполнить поиск по имени конкретной хранимой процедуры в базе данных, и если эта хранимая процедура доступна, значит, я должен получить эту хранимую процедуру и записать в текстовый файл..
Я не знаю, как получить хранимую процедуру.
Есть предложения?
РЕДАКТИРОВАТЬ: я извлек имена хранимых процедур с помощью SELECT NAME from SYS.PROCEDURES
и я не знаю, как получить эти хранимые процедуры
Комментарии:
1. Какой тип базы данных вы используете и каким способом получаете к ней доступ (ADO.Net EF, классы Linq-to-SQL, драйвер SQL и т.д.)
Ответ №1:
вы можете просто написать процедуру
select Column1,Column2 from sys.procedures where name='yourProcName'
Ответ №2:
http://databases.aspfaq.com/database/how-do-i-find-a-stored-procedure-containing-text.html
Затем просто создайте SqlConnection amp; SqlCommand как обычно и выполните SQL, чтобы узнать подробности процедуры:
SELECT ROUTINE_NAME, ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_NAME = @YourDesiredStoredProc;
AND ROUTINE_TYPE='PROCEDURE'
C#:
// details is a custom class you would use to hold the details of the proc :)
// Boring connection stuff
if(reader.Read())
{
this.details = new StoredProcedure(reader.GetString(0), reader.GetString(1);
}
else
{
throw new ArgumentException("Procedure does not exist");
}
// Close boring connection stuff.
this.details.Write("your_file_name");
Ответ №3:
Если SQLServer: http://msdn.microsoft.com/en-us/library/ms345443 (v = sql.90).aspx Я думаю, вы можете выполнить эту инструкцию sql и записать возвращаемое значение в свой текстовый файл.
Ответ №4:
Выполните свой запрос против sys.syscomments
. Согласно странице MDSN, она содержит записи для каждого представления, правила, ограничения по умолчанию, триггера, ПРОВЕРКИ, ограничения по УМОЛЧАНИЮ и хранимой процедуры в базе данных. Текстовый столбец содержит исходные инструкции определения SQL.