Aracılığıyla paylaş


Kullanıcı tanımlı işlevleri yürütme

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseMicrosoft Fabric'te SQL veritabanı

Transact-SQL kullanarak kullanıcı tanımlı bir işlev yürütür.

Skaler işlevler, işlevin en az iki parçalı adı (<schema>.<function>) kullanılarak çağrılmalıdır. Daha fazla bilgi için bkz. CREATE FUNCTION (Transact-SQL) .

Sınırlama

Transact-SQL'de parametreler <value> veya @parameter_name = <value>kullanılarak sağlanabilir. Parametre bir işlemin parçası değildir. Bu nedenle, bir parametre daha sonra geri alınan bir işlemde değiştirilirse, parametrenin değeri önceki değerine geri dönmez. Çağırana döndürülen değer her zaman modülün döndürdüğü zamandaki değerdir.

İzinler

EXECUTE deyimini çalıştırmak için izinler gerekli değildir. Ancak, dizesinde başvurulan EXECUTE güvenliği sağlanabilir öğeler üzerinde izinler gereklidir. Örneğin, bir dizge bir INSERT ifadesi içeriyorsa, EXECUTE ifadesini çağıran kişinin hedef tabloda INSERT izni olmalıdır. EXECUTE deyimi bir modüle dahil olsa bile EXECUTE deyimiyle karşılaşıldığında izinler denetleniyor. Daha fazla bilgi için YÜRÜT'e bakın.

Transact-SQL kullanma

Bu örnekte, ufnGetSalesOrderStatusTextçoğu sürümünde kullanılabilen AdventureWorks2025 skaler değerli işlevi kullanılır. İşlevin amacı, belirli bir tamsayıdan satış durumu için bir metin değeri döndürmektir. 1 ile 7 arasında tamsayıları @Status parametresine geçirerek örneği değiştirebilirsiniz.

USE [AdventureWorks2022]
GO

-- Declare a variable to return the results of the function.
DECLARE @ret NVARCHAR(15);

-- Execute the function while passing a value to the @status parameter
EXEC @ret = dbo.ufnGetSalesOrderStatusText @Status = 5;

-- View the returned value.
-- The Execute and Select statements must be executed at the same time.
SELECT N'Order Status: ' + @ret;

Sonuç şu şekildedir.

Order Status: Shipped
  • kullanıcı tanımlı işlevleri
  • create function (Transact-SQL)