Bir saklı yordamı yürütmek
Bu konuda bir saklı yordam yürütme açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL.
Bir saklı yordamı yürütmek için iki farklı yolu vardır. İlk ve en yaygın bir uygulama veya kullanıcı yordamı çağıran yaklaşımdır. Otomatik olarak bir örneğini çalıştırmak için yordamı için ikinci bir yaklaşım olduğunu SQL Serverbaşlar. Yordam, bir uygulama veya kullanıcı tarafından çağırıldığında Transact-SQLexecute veya exec anahtar kelime arama açıkça belirtilen. Alternatif olarak, yordamı denilen olabilir ve yordamı ilk deyimi ise anahtar sözcüğü idam Transact-SQLtoplu.
Bu Konuda
Başlamadan Önce
Sınırlamalar ve Kısıtlamalar
Öneriler
Güvenlik
Bir saklı yordamı yürütmek için kullanma:
SQL Server Management Studio
Transact-SQL
Başlamadan Önce
Sınırlamalar ve Kısıtlamalar
Sistem yordam adları eşleşen arama veritabanı harmanlama kullanılır. Bu nedenle, her zaman sistem yordam adları tam durumda yordam çağrılarında kullanın. Örneğin, bir büyük küçük harf duyarlı harmanlamayı sahip bir veritabanı bağlamında yürütülen bu kod başarısız olur:
EXEC SP_heLP; -- Will fail to resolve because SP_heLP does not equal sp_help
Tam sistem yordamı adlarını görüntülemek için sorgu görülebilirsys.system_objectsKatalog ve sys.system_parameters katalog görünümler.
Kullanıcı tanımlı yordamı herhangi bir zamanda not execute kullanıcı tanımlı bir yordam sistem yordamı aynı ada sahipse.
Öneriler
Yürütme sistem saklı yordamlar
Sistem prosedürleri önekiyle başlayan saklı. Çünkü onlar mantıklı görünür tüm kullanıcı ve sistem tanımlı veritabanlarında, onlar herhangi bir veritabanından tamamen kalite için yordam adı kalmadan çalıştırılır. Ancak, şema Elemeleri-tüm sistem yordam adları ile öneririz sys ad çakışmalarını önlemek için şema adı. Aşağıdaki örnek, bir sistem yordamı çağırmak için önerilen yöntem gösterir.
EXEC sys.sp_who;
Kullanıcı tanımlı saklı yordamları çalıştırma
Kullanıcı tanımlı bir yordam yürütülürken yordam adı şema adı ile yeterlik öneririz. Çünkü bu uygulama bir performans artırma verir Veritabanı Altyapısıbirden çok şema arama yok. Ayrıca, bir veritabanı içinde birden çok şema yordamlar aynı adı taşıyan varsa yanlış yordamı yürütme önler.
Aşağıdaki örnek, kullanıcı tanımlı bir yordamı çalıştırmak için önerilen yöntem gösterir. Yordamı bir girdi parametresini kabul ettiğini fark. Giriş ve çıkış parametreleri belirtme hakkında daha fazla bilgi için bkz: Parametreleri belirtin.
USE AdventureWorks2012; GO EXEC dbo.uspGetEmployeeManagers @BusinessEntityID = 50;
- Veya -
EXEC AdventureWorks2012.dbo.uspGetEmployeeManagers 50; GO
Niteliksiz, kullanıcı tanımlı bir yordam belirtilirse, Veritabanı Altyapısıyordam aşağıdaki sırayla arar:
Sys geçerli veritabanı şeması.
Toplu ya da dinamik SQL yürütülen arayanın varsayılan şema. Ya da niteliksiz yordam adı başka bir yordam tanımı gövdesi içinde görünüyorsa, bu yordam içeren şema sonraki aranır. Varsayılan şemaları hakkında daha fazla bilgi için bkz: Kullanıcı şeması ayrımı.
Dbo geçerli veritabanı şeması.
Saklı yordamları otomatik yürütme
Otomatik yürütme için işaretlenmiş işlemleri her zaman yürütülür SQL Serverbaşlar ve ana veritabanı, başlatma işlemi sırasında kurtarılan. Otomatik ayarlama işlemleri veritabanı bakım işlemleri gerçekleştirmek için yararlı olabilir veya olması için yordamlar sürekli arka plan işlemleri olarak çalışır. Başka bir otomatik yürütme yordam sistem ya da bakım görevleri gerçekleştirmek için kullanılır tempdb, genel geçici tablo oluşturmak gibi. Bu geçici bir tablo her zaman var emin olur ne zaman tempdb sırasında yeniden oluşturulur SQL Serverbaşlangıç.
Otomatik olarak yürütülen yordam üyeleri aynı izinlerle çalışır sysadmin sunucu rolü. Yordam tarafından oluşturulan herhangi bir hata iletisi yazılır SQL Serverhata \Kütüğü
Var ama her bir iş parçacığı yürütülürken tükettiğini unutmayın Başlangıç yordamlar sayısı için bir sınır yoktur. Başlangıçta çok yordamları yürütmek gerekir, ancak buna paralel olarak yürütülecek gerekmez, bir yordam başlatma yordamı yapmak ve bu yordam çağrısı diğer yordamlar vardır. Bu, tek bir iş parçacığı kullanır.
İpucu Herhangi bir sonuç kümelerini otomatik olarak çalıştırılan bir yordam döndürmeyin. Çünkü yordamı tarafından yürütülmekte olan SQL Serverbir uygulama veya kullanıcı yerine, orada'hiçbir yerde gitmek için sonuç kümeleri için.
Ayarlama temizleyerek ve otomatik yürütmeyi denetleme
Yalnızca sistem yöneticisinin (sa) otomatik olarak yürütmek için bir yordam işaretleyebilirsiniz. Ayrıca, yordamı olmalıdır ana ait veritabanı, save giriş yapamazsınız veya çıkış parametreleri.
Kullanım sp_procoption için:
Varolan bir yordam başlatma yordamı atayın.
Bir yordamın yürütülmesini, Dur SQL Serverbaşlangıç.
Güvenlik
Daha fazla bilgi için execute (Transact-sql)ve execute as yan tümcesi (Transact-sql).
İzinler
Daha fazla bilgi için bkz: "İzinler" bölüm içinde execute (Transact-sql).
[Top]
SQL Server Management Studio Kullanarak
Bir saklı yordamı yürütmek için
İçinde Object Explorer, örneğine bağlanmak SQL Server Veritabanı Altyapısı, bu örneği genişletin ve ardından veritabanları.
Genişletmek istediğiniz veritabanı genişletin programlamave ardından Saklı yordamlar.
İstediğiniz kullanıcı tanımlı saklı yordamı sağ Saklı yordamı yürütmek.
İçinde Execute yordam iletişim kutusunda, her parametre ve ister boş değer geçmek için bir değer belirtin.
Parametre
Parametrenin adını gösterir.Veri Türü
Parametrenin veri türünü gösterir.Çıkış parametresi
Bu bir çıkış parametresi olup olmadığını gösterir.Pass Null değeri
BOŞ parametre değeri geçirir.Değer
Yordamı çağrılırken parametresi için değer yazın.
Saklı yordamı yürütmek için tıklayın Tamam.
[Top]
Transact-SQL'i Kullanma
Bir saklı yordamı yürütmek için
Bağlanmak Veritabanı Altyapısı.
Standart çubuğundan tıklatın Yeni sorgu.
Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute. Bu örnek, bir parametre bekler bir saklı yordamı yürütmek gösterilmiştir. Örnek yürütür uspGetEmployeeManagers saklı yordamı değeri 6belirtildiği gibi @EmployeeIDparametresi.
USE AdventureWorks2012;
GO
EXEC dbo.uspGetEmployeeManagers 6;
GO
Otomatik olarak yürütülen yordam temizleyin veya ayarlamak için
Bağlanmak Veritabanı Altyapısı.
Standart çubuğundan tıklatın Yeni sorgu.
Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute. Bu örnek, nasıl kullanılacağını gösterir sp_procoption bir yordam için otomatik yürütme ayarlamak için.
USE AdventureWorks2012;
GO
EXEC sp_procoption @ProcName = '<procedure name>'
, @OptionName = ] 'startup'
, @OptionValue = 'on';
Bir yordamı otomatik olarak yürütülmesini durdurmak için
Bağlanmak Veritabanı Altyapısı.
Standart çubuğundan tıklatın Yeni sorgu.
Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute. Bu örnek, nasıl kullanılacağını gösterir sp_procoption yordam otomatik olarak yürütülmesini durdurmak için.
USE AdventureWorks2012;
GO
EXEC sp_procoption @ProcName = '<procedure name>'
, @OptionValue = 'off';
Örnek (Transact-sql)
[Top]
Ayrıca bkz.
Başvuru
procedure (Transact-sql) oluştur
Kavramlar
Implementing Stored Procedures
Başlangıç procs sunucu yapılandırma seçeneği tarama yapılandırmak