Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается изменение хранимой процедуры в SQL Server 2014 с помощью SQL Server Management Studio или Transact-SQL.
Перед началом работы:Ограничения и ограничения, безопасность
Изменение процедуры с помощью:SQL Server Management Studio, Transact-SQL
Перед началом
Ограничения
Хранимые процедуры Transact-SQL нельзя преобразовать в хранимые процедуры CLR, и наоборот.
Если предыдущее определение процедуры было создано с параметрами WITH ENCRYPTION или WITH RECOMPILE, эти параметры будут включены только в случае, если они указаны в инструкции ALTER PROCEDURE.
Безопасность
Разрешения
Необходимо разрешение ALTER PROCEDURE на процедуру.
Изменение хранимой процедуры
Можно использовать один из следующих способов:
Использование среды SQL Server Management Studio
Изменение процедуры в среде Management Studio
В обозреватель объектов подключитесь к экземпляру ядро СУБД, а затем разверните этот экземпляр.
Последовательно разверните узел Базы данных, базу данных, которой принадлежит процедура, и узел Программирование.
Разверните Хранимые процедуры, щелкните правой кнопкой мыши изменяемую процедуру, затем выберите Изменить.
Изменение текста хранимой процедуры.
Для проверки синтаксиса выберите пункт Выполнить анализ в меню Запрос.
Чтобы сохранить изменения определения процедуры, в меню Запрос выберите пункт Выполнить.
Чтобы сохранить обновленное определение процедуры в виде скрипта Transact-SQL, в меню "Файл " нажмите кнопку "Сохранить как". Можно принять предложенное имя файла или заменить его новым, после чего следует нажать кнопку Сохранить.
Внимание
Проверяйте все данные, вводимые пользователем. Не включайте их в сценарий, не выполнив проверку. Никогда не выполняйте команду, построенную на основании непроверенных пользовательских входных данных.
Использование Transact-SQL
Изменение процедуры в редакторе запросов
В обозреватель объектов подключитесь к экземпляру ядро СУБД, а затем разверните этот экземпляр.
Разверните узел Базы данных, разверните базу данных, в которой находится процедура. Также можно выбрать необходимую базу данных из списка доступных баз данных на панели инструментов. В этом примере выберите базу данных AdventureWorks2012 .
В меню Файл выберите команду Создать запрос.
Скопируйте и вставьте следующий пример в редактор запросов. В примере создается
uspVendorAllInfo
процедура, которая возвращает имена всех поставщиков в базе данных Adventure Works Cycles, продукты, которые они предоставляют, их кредитные рейтинги и их доступность.IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL DROP PROCEDURE Purchasing.uspVendorAllInfo; GO CREATE PROCEDURE Purchasing.uspVendorAllInfo WITH EXECUTE AS CALLER AS SET NOCOUNT ON; SELECT v.Name AS Vendor, p.Name AS 'Product name', v.CreditRating AS 'Rating', v.ActiveFlag AS Availability FROM Purchasing.Vendor v INNER JOIN Purchasing.ProductVendor pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product p ON pv.ProductID = p.ProductID ORDER BY v.Name ASC; GO
В меню Файл выберите команду Создать запрос.
Скопируйте и вставьте следующий пример в редактор запросов. В следующем примере изменяется процедура
uspVendorAllInfo
. Предложение EXECUTE AS CALLER удаляется, и изменяется текст процедуры, чтобы возвращать только поставщиков, предлагающих конкретный товар. Содержимое результирующего набора определяется при помощи функцийLEFT
иCASE
.ALTER PROCEDURE Purchasing.uspVendorAllInfo @Product varchar(25) AS SET NOCOUNT ON; SELECT LEFT(v.Name, 25) AS Vendor, LEFT(p.Name, 25) AS 'Product name', 'Rating' = CASE v.CreditRating WHEN 1 THEN 'Superior' WHEN 2 THEN 'Excellent' WHEN 3 THEN 'Above average' WHEN 4 THEN 'Average' WHEN 5 THEN 'Below average' ELSE 'No rating' END , Availability = CASE v.ActiveFlag WHEN 1 THEN 'Yes' ELSE 'No' END FROM Purchasing.Vendor AS v INNER JOIN Purchasing.ProductVendor AS pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product AS p ON pv.ProductID = p.ProductID WHERE p.Name LIKE @Product ORDER BY v.Name ASC; GO
Чтобы сохранить изменения определения процедуры, в меню Запрос выберите пункт Выполнить.
Чтобы сохранить обновленное определение процедуры в виде скрипта Transact-SQL, в меню "Файл " нажмите кнопку "Сохранить как". Можно принять предложенное имя файла или заменить его новым, после чего следует нажать кнопку Сохранить.
Чтобы выполнить измененную хранимую процедуру, выполните следующий пример.
EXEC Purchasing.uspVendorAllInfo N'LL Crankarm'; GO