Aracılığıyla paylaş


Kullanıcı tanımlı işlevi temel kavramları

Like functions in programming languages, Microsoft SQL Server user-defined functions are routines that accept parameters, perform an action, such as a complex calculation, and return the result of that action as a value.Dönüş değeri, skaler skaler değer olabilir veya bir sonuç küme.

Kullanıcı tanımlı işlev yararları

Kullanıcı tanımlı işlevler kullanmanın yararları SQL Server olan:

  • Modüler programlama sağlarlar.

    Bir kez bir işlev oluşturun, veritabanında depolamak ve onu kaç kez programınızda çağrısı.Kullanıcı tanımlı işlevler, program kaynak kodunu bağımsız olarak değiştirilebilir.

  • Daha hızlı bir çalıştırma sağlarlar.

    Saklı yordamlar, benzer Transact-SQL kullanıcı tanımlı işlevler derleme maliyeti azaltmak Transact-SQL kod planları önbelleğe alıp bunları yinelenen yürütmeler için yeniden kullanmaBu kullanıcı tanımlı gelir işlev reparsed ve reoptimized çok daha hızlı yürütme zamanları ile sonuçlanan her kullanımı gerekli değildir.

    CLR functions offer significant performance advantage over Transact-SQL functions for computational tasks, string manipulation, and business logic.Transact-SQL functions are better suited for data-access intensive logic.

  • Bunlar, ağ trafiğini azaltabilirsiniz.

    skaler skaler ifade ifade edilemeyen bazı karmaşık kısıtlaması temel verilere filtre işlem bir işlev olarak ifade edilebilir.işlev sonra çağrıldığında numarasını veya gönderilen satırları azaltmak için where yan tümce tümce tümcesinde istemci.

Not

Transact-SQL kullanıcı tanımlı işlevler sorgularda, yalnızca tek bir iş parçacığı üzerinde (seri yürütme planı) çalıştırılabilir.

Kullanıcı tanımlı bir işlev bileşenleri

Kullanıcı tanımlı işlevler yazılabilir Transact-SQL, ya da herhangi.net programlama dili.Kullanma hakkında daha fazla bilgi için.net işlevleri dillerde Bkz: clr kullanıcı tanımlı işlevler.

Tüm kullanıcı tanımlı işlevler aynı iki parçalı yapı vardır: bir başlık ve gövde.işlev sıfır veya daha çok giriş parametresi alır ve skaler bir değer veya bir tablo döndürür.

Üstbilgi tanımlar:

  • İsteğe bağlı şema veya sahibinin adı işlev adı

  • Parametre adı ve veri türü giriş

  • Giriş parametresi uygulanabilir seçenekleri

  • Parametrenin veri türünü ve isteğe bağlı ad döndürür

  • Dönüş parametresi uygulanabilir seçenekleri

Gerçekleştirmek için işlev, gövde eylem veya mantığını tanımlar.Ya da içerir:

  • Bir veya daha fazla Transact-SQL deyimlerini işlev mantığı gerçekleştirme

  • Başvuru için bir.net derleme

Basit bir aşağıdaki örnekte gösterildiği Transact-SQL kullanıcı tanımlı işlev işlevini ana bileşenleri tanımlar veişlev sağlanan tarih olarak değerlendirilir ve bu tarihten bir hafta içindeki konumunu belirleme değerini döndürür.

IF OBJECT_ID(N'dbo.GetWeekDay', N'FN') IS NOT NULL
    DROP FUNCTION dbo.GetWeekDay;
GO
CREATE FUNCTION dbo.GetWeekDay           -- function name
(@Date datetime)                     -- input parameter name and data type
RETURNS int                          -- return parameter data type
AS
BEGIN                                -- begin body definition
RETURN DATEPART (weekday, @Date)     -- action performed
END;
GO

Aşağıdaki örnekte kullanılan işlev gösterir bir Transact-SQL deyim.

SELECT dbo.GetWeekDay(CONVERT(DATETIME,'20020201',101)) AS DayOfWeek;
GO

Sonuç kümesi buradadır.

DayOfWeek
---------
6  
(1 row(s) affected)

Ayrıca bkz.

Kavramlar

Diğer Kaynaklar