Saklı yordam değiştirmek
Bu konuda bir saklı yordam değiştirmek açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL.
Başlamadan önce: kısıtlamaları ve sınırlamaları, güvenlik
Bir yordam değiştirmek için kullanma: SQL Server Management Studio'yu, Transact-sql
Başlamadan Önce
Sınırlamalar ve Kısıtlamalar
[Üst]
Transact-SQLsaklı yordamları clr depolanan yordamlar için değiştirilemez ve tam tersi.
Önceki yordam tanımı ile şifreleme veya WITH yeniden DERLEYIN kullanılarak oluşturulmuşsa, sadece onlar alter procedure açıklamada bulunması bu seçenekler etkinleştirilir.
Güvenlik
İzinler
[Üst]
Yordamı alter procedure izni gerektirir.
Nasıl bir saklı yordam değiştirmek için
Aşağıdakilerden birini kullanabilirsiniz:
SQL Server Management Studio
Transact-SQL
SQL Server Management Studio Kullanarak
Management Studio'da bir yordam değiştirmek için
Nesne Explorer'da örneğine bağlanmak Veritabanı Altyapısıve bu örneği genişletin.
Genişletme veritabanları, hangi yordamı ait olduğu ve ardından veritabanı genişletin programlama.
Genişletme Saklı yordamlar, yordamı değiştirin ve sonra tıklatın sağ Değiştir.
Saklı yordam metni değiştirin.
Tarih sözdizimini sınamak için sorgu menüsünden tıklatın ayrıştırma.
Doğum için yordam tanımı yapılan değişiklikleri kaydetmek için sorgu menüsünü tıklayın Execute.
Güncellenme Zamanı yordam tanımı olarak kaydetmek için bir Transact-SQL, üzerinde komut dosyası Dosya menüsünden tıklatın Kaydet. Dosya adını kabul edin veya yeni bir adla değiştirin ve ardından kaydetmek.
Güvenlik Notu |
---|
Tüm kullanıcı girdisi doğrulayın. Önce bunu doğrulamak, kullanıcı girişi arada değil. Asla unvalidated kullanıcı girişi inşa bir komut çalıştırır. |
Transact-SQL'i Kullanma
Sorgu Düzenleyicisi'nde bir yordam değiştirmek için
İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısıve bu örneği genişletin.
Genişletme veritabanları, yordamı ait veritabanı genişletin. Ya da, araç çubuğunda veritabanı kullanılabilir veritabanlarının listesinden seçin. Bu örnekte, seçmek AdventureWorks2012 veritabanı.
Tarih dosyasını menüsünden tıklatın Yeni sorgu.
Kopyalama ve aşağıdaki örnek sorgu düzenleyicisine yapıştırın. Örnek oluşturur uspVendorAllInfotüm satıcıların adlarını döndürür yordamı, Adventure Works Cyclesveritabanı, onlar tedarik ürünleri, kendi kredi derecelendirme ve kullanılabilirliklerini.
USE AdventureWorks2012; GO 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
Tarih dosyasını menüsünden tıklatın Yeni sorgu.
Kopyalama ve aşağıdaki örnek sorgu düzenleyicisine yapıştırın. Örnek uspVendorAllInfoyordam. execute as arayan yan kaldırılır ve yalnızca belirtilen ürün tedarik satıcılar dönmek yordam gövdesinde değiştirilir. LEFTVe CASEişlevleri sonuç kümesinin görünümünü özelleştirmek.
USE AdventureWorks2012; GO 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
Doğum için yordam tanımı yapılan değişiklikleri kaydetmek için sorgu menüsünü tıklayın Execute.
Güncellenme Zamanı yordam tanımı olarak kaydetmek için bir Transact-SQL, üzerinde komut dosyası Dosya menüsünden tıklatın Kaydet. Dosya adını kabul edin veya yeni bir adla değiştirin ve ardından kaydetmek.
Değiştirilen saklı yordamı çalıştırmak için aşağıdaki örnek yürütün.
EXEC Purchasing.uspVendorAllInfo N'LL Crankarm'; GO
[Üst]