Megosztás a következőn keresztül:


Felhasználó által definiált függvények végrehajtása

A következőkre vonatkozik:SQL ServerAzure SQL Database

Felhasználó által definiált függvény végrehajtása a Transact-SQL használatával.

A skaláris függvényeket legalább a függvény kétrészes nevének (<schema>.<function>) használatával kell meghívni. További információ: CREATE FÜGGVÉNY (Transact-SQL).

Korlátozások

A Transact-SQL-ben a paraméterek <value> vagy @parameter_name = <value>használatával adhatók meg. A paraméter nem része a tranzakciónak. Ezért ha egy paraméter módosul egy később visszagördített tranzakcióban, a paraméter értéke nem áll vissza a korábbi értékre. A hívónak visszaadott érték mindig az az érték, amikor a modul visszatér.

Engedélyek

Az EXECUTE utasítás futtatásához nincs szükség engedélyekre. Az engedélyek szükségesek a EXECUTE stringben hivatkozott biztonsági objektumokra. Ha például a karakterlánc INSERT utasítást tartalmaz, a EXECUTE utasítás hívójának INSERT engedéllyel kell rendelkeznie a céltáblán. A rendszer akkor is ellenőrzi az engedélyeket, amikor EXECUTE utasítás megjelenik, még akkor is, ha a EXECUTE utasítás egy modulban szerepel. További információ: EXECUTE.

Transact-SQL használata

Ez a példa a AdventureWorks2022legtöbb kiadásában elérhető ufnGetSalesOrderStatusText skaláris értékű függvényt használja. A függvény célja egy adott egész számból származó értékesítési állapot szöveges értékének visszaadása. A példát úgy változtathatja meg, hogy 1–7 egész számokat ad át a @Status paraméternek.

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;

Itt az eredmény.

Order Status: Shipped