Быстрый способ изменить MS хранимая процедура SQL

I need to edit Microsoft SQL stored procedures frequently and i found the traditional way (Open MSSMS -> expand the databases tree, expand the stored procedures tree and define filter by the name of the SP) very long. i am looking for a way (command line) like "sp_helptext " but a way that will actually open for me the stored procedure for edit.

Спасибо.

4
Почему вы редактируете хранимые процедуры непосредственно? Необходимо работать со сценариями SQL в управлении исходным кодом, таким образом, вы открываете сценарий, редактируете его, затем выполняете его, чтобы изменить процедуру. Есть много способов сделать, это в зависимости от ваших предпочтительных инструментов и системы управления исходным кодом, но непосредственно редактирующий объекты базы данных является очень плохой идеей.
добавлено автор Pondlife, источник
Используйте должностное лицо sp_HelpText ' Процедура Name' .Copy результат и паста это в ssms и использовании Изменяет Процедуру вместо создают , чтобы изменить SP.But вместо того, чтобы делать их, наилучший вариант состоит в том, чтобы использовать фильтр параметры настройки в папка Stored Procedure .
добавлено автор praveen, источник
сценарий, который это и сохраняет в файл, держите его на рабочем столе: o
добавлено автор WKordos, источник

6 ответы

Есть путь: Я развиваю SSMSBoost - дополнение для SSMS. Это позволяет открывать сценарии объекта непосредственно от Редактора SQL.

  1. В Редакторе SQL Устанавливает курсор на название хранимой процедуры

  2. Хит F2 и процедура будет подготовлен в новом окне.

Удар Ctrl-F2 определил бы местонахождение объекта в дереве обозревателя объектов, таким образом, можно использовать дальнейшие команды SSMS, щелкающие правой кнопкой мыши по нему.

Надежда это помогает.

3
добавлено
я предпочитаю утилиты с открытым исходным кодом. вы знаете тот?
добавлено автор Omtechguy, источник
Есть некоторые дополнения с открытым исходным кодом, но они не делают то, что спрашивают здесь в этом вопросе. Мое дополнение не открытый исходный код, но может использоваться в настоящее время бесплатно
добавлено автор Andrei Rantsevich, источник

Нет никакой прямой команды как

MODIFY dbname.schemaname.spname

У вас есть 3 варианта, которые используют TSQL кроме традиционного способа GUI использовать SSMS

EXEC sp_helptext dbname.schemaname.spname';

SELECT OBJECT_DEFINITION (OBJECT_ID(dbname.schemaname.spname'));

SELECT definition
FROM sys.sql_modules
WHERE object_id = (OBJECT_ID(dbname.schemaname.spname'));

К сожалению, все эти варианты приведут к потере форматирования.

Вы пытаетесь смешать две технологии здесь.

  1. SQL и SQLSyntax
  2. Инструмент управления SQL

Вероятно, не возможно использовать TSQL, чтобы управлять Студией управления, которая является тем, что вы, кажется, хотите. Я боящийся вырезанный и вставленный, ваш единственный выбор.

Власть

2
добавлено

Проверьте Быстрый Redgate SQL. С этим можно щелкнуть правой кнопкой мыши по имени Сохраненного Прока и нажать "ALTER"

КРАСНЫЕ ВОРОТА SQL, БЫСТРЫЙ

1
добавлено
Если вы пробуете Экспериментальные Особенности (you' ll находят их в меню SQL Prompt), можно позволить Автоматический выбор Предложений Освежительного напитка.
добавлено автор David Atkinson, источник
Есть освежительный напиток предложения, по которым я склонен щелкать время от времени
добавлено автор Diginari, источник
Я нашел, что иногда КРАСНЫЕ ВОРОТА показывают мне содержание от своего тайника и его не большая часть обновленной версии... Возможно, потому что я использую старую версию.
добавлено автор Omtechguy, источник

Никогда не используйте SSMS (или дополнение SSMS) к сценарию сохранил procs для изменения. Сохраненный procs должен всегда открываться непосредственно от вашего управления исходным кодом вместо этого. Если у вас нет этих объектов в управлении исходным кодом, то необходимо сделать так. SPS - код, их нужно рассматривать точно так же, как другой код. Безответственно отредактировать SPS, подготовленный снаружи системы управления исходным кодом.

0
добавлено

Вот код, который можно использовать, чтобы управлять sp_helptext процедурой, которая даст вам, поддерживают стол рядов, которые можно написать файлу, который создаст хранимую процедуру. Можно тогда передать имя файла в командную строку SSMS, чтобы открыть тот файл непосредственно, когда менеджер по SQL-серверу открывается.

исключая) Ssms tempFile.sql

using (SqlConnection con = new SqlConnection ("Connection String Here"))
{
    using (SqlCommand cmd = con.CreateCommand())
    {
        cmd.CommandText = "sp_helptext @procName";
        cmd.CommandType = CommandType.Text;

        cmd.Parameters.AddWithValue("procName", "Name Of Stored Proc Here");

        con.Open(); 

        using (SqlDataReader rdr = cmd.ExecuteReader())
        {
            while (rdr.Read())
            {
                /* 
                You will get the CREATE PROC text here
                Do what you need to with it. For example, write
                to a .sql file
                */
            }
        }
    }
}
0
добавлено

Используйте это

SELECT ROUTINE_DEFINITION from INFORMATION_SCHEMA.ROUTINES
where ROUTINE_NAME = 'YourStoredProcedureName'

Надежда это помогает.

0
добавлено
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)