Condividi tramite


Eseguire funzioni definite dall'utente

È possibile eseguire una funzione definita dall'utente in SQL Server 2014 usando Transact-SQL.

Contenuto dell'articolo

Prima di iniziare

Limitazioni e restrizioni

In Transact-SQL i parametri possono essere forniti usando il valore o usando @parameter_name=valore. Un parametro non fa parte di una transazione; pertanto, se un parametro viene modificato in una transazione che viene eseguito in un secondo rollback, il valore del parametro non ripristina il valore precedente. Il valore restituito al chiamante corrisponde sempre al valore specificato al termine del modulo.

Sicurezza

Autorizzazioni

Per eseguire l'istruzione EXECUTE, non è necessario disporre di autorizzazioni specifiche. Sono tuttavia richieste autorizzazioni per le entità a protezione diretta a cui viene fatto riferimento all'interno della stringa EXECUTE. Se, ad esempio, la stringa include un'istruzione INSERT, il chiamante dell'istruzione EXECUTE deve disporre dell'autorizzazione INSERT per la tabella di destinazione. Le autorizzazioni vengono verificate non appena viene rilevata l'istruzione EXECUTE, anche se l'istruzione è inclusa in un modulo. Per altre informazioni, vedere EXECUTE (Transact-SQL)

Uso di Transact-SQL

Per eseguire una funzione definita dall'utente

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.

    USE AdventureWorks2012;  
    GO  
    -- Declares a variable and sets it to zero.  
    -- This variable is used to return the results of the function.  
    DECLARE @ret nvarchar(15)= NULL;   
    
    -- Executes the dbo.ufnGetSalesOrderStatusText function.  
    --The function requires a value for one parameter, @Status.   
    EXEC @ret = dbo.ufnGetSalesOrderStatusText @Status= 5;   
    --Returns the result in the message tab.  
    PRINT @ret;  
    

Per altre informazioni, vedere EXECUTE (Transact-SQL).