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:

    1. Sys geçerli veritabanı şeması.

    2. 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ı.

    3. 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İ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:

    1. Varolan bir yordam başlatma yordamı atayın.

    2. 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).

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

SQL Server Management Studio Kullanarak

Bir saklı yordamı yürütmek için

  1. İçinde Object Explorer, örneğine bağlanmak SQL Server Veritabanı Altyapısı, bu örneği genişletin ve ardından veritabanları.

  2. Genişletmek istediğiniz veritabanı genişletin programlamave ardından Saklı yordamlar.

  3. İstediğiniz kullanıcı tanımlı saklı yordamı sağ Saklı yordamı yürütmek.

  4. İç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.

  5. Saklı yordamı yürütmek için tıklayın Tamam.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Transact-SQL'i Kullanma

Bir saklı yordamı yürütmek için

  1. Bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğundan tıklatın Yeni sorgu.

  3. 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

  1. Bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğundan tıklatın Yeni sorgu.

  3. 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

  1. Bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğundan tıklatın Yeni sorgu.

  3. 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)

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Ayrıca bkz.

Başvuru

execute (Transact-sql)

procedure (Transact-sql) oluştur

Kavramlar

Parametreleri belirtin

Implementing Stored Procedures

Başlangıç procs sunucu yapılandırma seçeneği tarama yapılandırmak

Saklı yordamlar (veritabanı altyapısı)