Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Kör en användardefinierad funktion med Hjälp av Transact-SQL.
Skalärfunktioner måste anropas med hjälp av minst tvådelade namn på funktionen (<schema>.<function>
). Mer information finns i CREATE FUNCTION (Transact-SQL).
Begränsningar
I Transact-SQL kan parametrar anges antingen med hjälp av <value>
eller med hjälp av @parameter_name = <value>
. En parameter är inte en del av en transaktion. Om en parameter ändras i en transaktion som senare återställs återgår därför värdet för parametern inte till det tidigare värdet. Värdet som returneras till anroparen är alltid värdet när modulen returneras.
Behörigheter
Behörigheter krävs inte för att köra instruktionen EXECUTE. Behörigheter krävs dock för skyddsbara som refereras i EXECUTE
strängen. Om strängen till exempel innehåller en INSERT--instruktion måste anroparen för EXECUTE
-instruktionen ha INSERT
behörighet på måltabellen. Behörigheter kontrolleras när EXECUTE
-instruktionen påträffas, även om EXECUTE
-instruktionen ingår i en modul. Mer information finns i EXECUTE.
Använd Transact-SQL
I det här exemplet används skalärvärdefunktionen ufnGetSalesOrderStatusText
som är tillgänglig i de flesta utgåvor av AdventureWorks2022
. Syftet med funktionen är att returnera ett textvärde för försäljningsstatus från ett visst heltal. Variera exemplet genom att skicka heltal 1 till och med 7 till parametern @Status
.
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;
Här är resultatet.
Order Status: Shipped