Kullanıcı tanımlı işlevler (veritabanı altyapısı) oluşturma

Kullanıcı tanımlı işlevler işlev alter deyim kullanılarak değiştirilebilir ve işlev drop deyim kullanarak create FUNCTION ifadesini kullanarak oluşturulur.Her kullanıcı tanımlı tam işlev adı (schema_name.function_name) benzersiz olması gerekir.

Yönergeleri

Transact-SQL Sonraki deyim (tetikleyiciler veya saklı yordamlar) modülü ile iptal edilebilir ve devam etmek bir deyim neden hatalar farklı bir işlev içinde kabul edilir.De işlevs, bu tür hatalara neden yürütülmesini işlev durdurmak için.Bu sırayla iptal işlev çağıran deyim neden olur.

BEGIN deyimlerinde...Son blok herhangi yan etkilere sahip olamaz.işlev yan etkileri olan değişiklikleri kalıcı bir kapsam dışında bir veritabanı için bir değişiklik gibi işlev olan bir kaynağın durumunu tablo.İşlev ifadelerine göre yapılan tek değişiklik, nesnelere yerel imleçler veya değişkenler gibi işlev yerel değişikliklerdir.Veritabanı tabloları değişiklikleri, e-posta gönderme, katalog değiştirme girişimi ve bir sonuç küme yani üretme işlev için yerel imleçler üzerinde işlem kullanıcıya bir işlevde gerçekleştirilen eylemler verilebilir.

Not

create FUNCTION ifadesini create FUNCTION ifadesini kesilirken, mevcut kaynaklara karşı yan etkileri oluyorsa SQL Server yürütür deyim.Ancak, SQL Server yok yürütmek işlev çalıştırıldığında.

Sorguda belirtilen bir işlev aslında yürütülen sayısı en iyi duruma getiricisi tarafından oluşturulan yürütme planları arasında farklılık gösterebilir.Bir işlev tarafından çağrılan bir örnektir bir alt sorgu bir where yan tümce tümce tümcesinde.Alt sorgu sayısı zaman ve kendi işlev yürütülecek olan en iyi duruma getiricisi tarafından seçilmiş farklı erişim yolları ile değişebilir.

Geçerli bir işlev deyimleri

Geçerli bir işlev deyimleri türleri şunlardır:

  • Deyimleri veri değişkenleri ve işlev için yerel imleçler tanımlamak için kullanılan BİLDİRİR.

  • skaler değerler ve tablo yerel değişkenleri atamak için nesneleri kullanma gibi işlev yerel değerlere atamalarını ayarlayın.

  • Başvuru, açılmış, bildirilen yerel imleçler imleç işlemlerini kapalı ve içinde ayırmanın işlev.Geri dönmek için veri getirme ifadeleri istemci izin verilir.INTO yan tümce tümce tümce kullanarak yerel değişkenler için değerler atayın tek getirme deyimleri izin verilir.

  • Akış denetimi deyimleri deneyin dışında...catch deyimleri.

  • select deyimleri içeren listeleri işlev için yerel olan değişkenler için değerler atayın ifadeleri ile seçin.

  • update, INSERT ve delete deyimlerini işlev için yerel olarak tablo değişkenlerini değiştirme.

  • execute deyimlerinin çağırma bir genişletilmiş saklı yordam.

Yerleşik Sistem işlevleri

FUNCTION aşağıdaki yerleşik işlevler Transact-sql kullanıcı tanımlı işlevler kullanılabilir.

CURRENT_TIMESTAMP

@@ MAX_CONNECTIONS

GET_TRANSMISSION_STATUS

@@ PACK_RECEIVED

GETDATE

@@ PACK_SENT

GETUTCDATE

@@ PACKET_ERRORS

@@ BAĞLANTILARI

@@ TIMETICKS

@@ CPU_BUSY

@@ TOTAL_ERRORS

@@ DBTS

@@ TOTAL_READ

@@ BOŞTA

@@ TOTAL_WRITE

@@ IO_BUSY

 

FUNCTION aşağıdaki yerleşik işlevler Transact-sql kullanıcı tanımlı işlevler içinde kullanılamaz.

NEWID

RAND

NEWSEQUENTIALID

TEXTPTR

Deterministic ve FUNCTION yerleşik bir listesi için sistem işlevleri, bkz: Deterministic ve FUNCTION işlevleri.

Şemaya bağlı işlevleri

create FUNCTION şeması, tablolar, görünümler ve diğer kullanıcı tanımlı işlevler gibi başvurduğu herhangi bir nesne, işlev bağlar bir ema BALAMA yan tümce tümce destekler.ALTER veya herhangi bir nesne bir şemaya bağlı işlev tarafından başvurulan drop denemesi başarısız olur.

Ema BALAMA oluştur İŞLEVİNDE belirlemeden önce aşağıdaki koşulların karşılanması gerekir:

  • Tüm görünümler ve kullanıcı tanımlı işlevler işlev tarafından başvurulan şemaya bağlı olması gerekir.

  • işlev tarafından başvurulan tüm nesneleri işlev aynı veritabanında bulunması gerekir.Bir bölümü veya iki bölümü adı kullanarak nesneleri başvurulmalıdır.

  • işlev başvurulan tüm nesneleri (tablolar, görünümler ve kullanıcı tanımlı işlevler) başvurular izninizin olması gerekir.

Şemayı kaldırmak için Değiştir İŞLEVİNİ kullanabilirsiniz bağlama.işlev alter deyim ile ema BALAMA belirtmeden işlev yeniden tanımlamanız.

Parametreler belirtme

Kullanıcı tanımlı bir işlev sıfır veya daha çok giriş parametresi alır ve skaler bir değer veya bir tablo döndürür.En çok 1024 giriş parametresi bir işlev olabilir.İşlevin bir parametre varsayılan değeri varsa, varsayılan anahtar sözcük varsayılan değerini almak için işlev çağrılırken belirtilmesi gerekir.Bu davranış, hangi atlama parametresi de varsayılan değer anlaşılacağı kullanıcı tanımlı saklı yordamlar varsayılan değerleri ile parametrelerini farklıdır.Kullanıcı tanımlı işlevler çıktı parametrelerini destekler.