Condividi tramite


ROUTINES (Transact-SQL)

Restituisce una riga per ogni stored procedure e funzione accessibile dall'utente corrente nel database corrente. Le colonne in cui viene descritto il valore restituito sono valide solo per le funzioni. Per le stored procedure in queste colonne viene restituito NULL.

Per recuperare informazioni da queste viste, specificare il nome completo di INFORMATION_SCHEMA.view_name.

[!NOTA]

La colonna ROUTINE_DEFINITION include le istruzioni di origine con cui è stata creata la funzione o la stored procedure. È probabile che queste istruzioni contengano ritorni a capo incorporati. Se questa colonna viene restituita a un'applicazione che visualizza i risultati in un formato testo, i ritorni a capo incorporati nei risultati di ROUTINE_DEFINITION possono influire sulla formattazione del set di risultati. Se si seleziona la colonna ROUTINE_DEFINITION, apportare le modifiche necessarie per i ritorni a capo incorporati, ad esempio restituendo il set di risultati in una griglia oppure restituendo ROUTINE_DEFINITION in una casella di testo specifica.

Nome colonna

Tipo di dati

Descrizione

SPECIFIC_CATALOG

nvarchar(128)

Nome specifico del catalogo. Questo nome corrisponde a ROUTINE_CATALOG.

SPECIFIC_SCHEMA

nvarchar(128)

Nome specifico dello schema.

Nota importanteImportante
Non utilizzare viste INFORMATION_SCHEMA per determinare lo schema di un oggetto. L'unica modalità affidabile per cercare lo schema di un oggetto consiste nell'eseguire una query sulla vista del catalogo sys.objects o sulla funzione OBJECT_SCHEMA_NAME.

SPECIFIC_NAME

nvarchar(128)

Nome specifico del catalogo. Questo nome corrisponde a ROUTINE_NAME.

ROUTINE_CATALOG

nvarchar(128)

Nome del catalogo della funzione.

ROUTINE_SCHEMA

nvarchar(128)

Nome dello schema che contiene la funzione.

Nota importanteImportante
Non utilizzare viste INFORMATION_SCHEMA per determinare lo schema di un oggetto. L'unica modalità affidabile per cercare lo schema di un oggetto consiste nell'eseguire una query sulla vista del catalogo sys.objects o sulla funzione OBJECT_SCHEMA_NAME.

ROUTINE_NAME

nvarchar(128)

Nome della funzione.

ROUTINE_TYPE

nvarchar(20)

Restituisce PROCEDURE per le stored procedure e FUNCTION per le funzioni.

MODULE_CATALOG

nvarchar(128)

NULL. Riservato per utilizzi futuri.

MODULE_SCHEMA

nvarchar(128)

NULL. Riservato per utilizzi futuri.

MODULE_NAME

nvarchar(128)

NULL. Riservato per utilizzi futuri.

UDT_CATALOG

nvarchar(128)

NULL. Riservato per utilizzi futuri.

UDT_SCHEMA

nvarchar(128)

NULL. Riservato per utilizzi futuri.

UDT_NAME

nvarchar(128)

NULL. Riservato per utilizzi futuri.

DATA_TYPE

nvarchar(128)

Tipo di dati del valore restituito dalla funzione. Per le funzioni con valori di tabella viene restituito table.

CHARACTER_MAXIMUM_LENGTH

int

Lunghezza massima, espressa in caratteri, se viene restituito un tipo di dati character.

-1 per i dati di tipo xml e di tipi per valori di grandi dimensioni.

CHARACTER_OCTET_LENGTH

int

Lunghezza massima, espressa in byte, se viene restituito un tipo di dati character.

-1 per i dati di tipo xml e di tipi per valori di grandi dimensioni.

COLLATION_CATALOG

nvarchar(128)

Restituisce sempre NULL.

COLLATION_SCHEMA

nvarchar(128)

Restituisce sempre NULL.

COLLATION_NAME

nvarchar(128)

Nome delle regole di confronto del valore restituito. Per i tipi di dati diversi da character viene restituito NULL.

CHARACTER_SET_CATALOG

nvarchar(128)

Restituisce sempre NULL.

CHARACTER_SET_SCHEMA

nvarchar(128)

Restituisce sempre NULL.

CHARACTER_SET_NAME

nvarchar(128)

Nome del set di caratteri del valore restituito. Per i tipi di dati diversi da character viene restituito NULL.

NUMERIC_PRECISION

smallint

Precisione numerica del valore restituito. Per i tipi di dati non numerici viene restituito NULL.

NUMERIC_PRECISION_RADIX

smallint

Radice di precisione numerica del valore restituito. Per i tipi di dati non numerici viene restituito NULL.

NUMERIC_SCALE

smallint

Scala del valore restituito. Per i tipi di dati non numerici viene restituito NULL.

DATETIME_PRECISION

smallint

Precisione frazionaria del secondo se il valore restituito è di tipo datetime. In caso contrario restituisce NULL.

INTERVAL_TYPE

nvarchar(30)

NULL. Riservato per utilizzi futuri.

INTERVAL_PRECISION

smallint

NULL. Riservato per utilizzi futuri.

TYPE_UDT_CATALOG

nvarchar(128)

NULL. Riservato per utilizzi futuri.

TYPE_UDT_SCHEMA

nvarchar(128)

NULL. Riservato per utilizzi futuri.

TYPE_UDT_NAME

nvarchar(128)

NULL. Riservato per utilizzi futuri.

SCOPE_CATALOG

nvarchar(128)

NULL. Riservato per utilizzi futuri.

SCOPE_SCHEMA

nvarchar(128)

NULL. Riservato per utilizzi futuri.

SCOPE_NAME

nvarchar(128)

NULL. Riservato per utilizzi futuri.

MAXIMUM_CARDINALITY

bigint

NULL. Riservato per utilizzi futuri.

DTD_IDENTIFIER

nvarchar(128)

NULL. Riservato per utilizzi futuri.

ROUTINE_BODY

nvarchar(30)

Restituisce SQL per le funzioni Transact-SQL ed EXTERNAL per le funzioni scritte esternamente.

Le funzioni sono sempre di tipo SQL.

ROUTINE_DEFINITION

nvarchar(4000)

Restituisce i primi 4000 caratteri del testo di definizione della funzione o della stored procedure se la funzione o la stored procedure non è crittografata. In caso contrario restituisce NULL.

Per essere certi di ottenere la definizione completa, eseguire una query sulla funzione OBJECT_DEFINITION o sulla colonna di definizione nella vista del catalogo sys.sql_modules.

EXTERNAL_NAME

nvarchar(128)

NULL. Riservato per utilizzi futuri.

EXTERNAL_LANGUAGE

nvarchar(30)

NULL. Riservato per utilizzi futuri.

PARAMETER_STYLE

nvarchar(30)

NULL. Riservato per utilizzi futuri.

IS_DETERMINISTIC

nvarchar(10)

Restituisce YES se la routine è deterministica.

Restituisce NO se la routine non è deterministica.

Restituisce sempre NO per le stored procedure.

SQL_DATA_ACCESS

nvarchar(30)

Restituisce uno dei valori seguenti:

NONE = La funzione non contiene SQL.

CONTAINS = È possibile che la funzione contenga SQL

READS = È possibile che la funzione legga dati SQL.

MODIFIES = È possibile che la funzione modifichi dati SQL.

Restituisce READS per tutte le funzioni e MODIFIES per tutte le stored procedure.

IS_NULL_CALL

nvarchar(10)

Specifica se la routine deve essere chiamata quando uno degli argomenti è NULL.

SQL_PATH

nvarchar(128)

NULL. Riservato per utilizzi futuri.

SCHEMA_LEVEL_ROUTINE

nvarchar(10)

Restituisce YES per le funzioni valutate a livello di schema e NO negli altri casi.

Restituisce sempre YES.

MAX_DYNAMIC_RESULT_SETS

smallint

Numero massimo di set di risultati dinamici restituiti dalla routine.

Restituisce 0 per le funzioni.

IS_USER_DEFINED_CAST

nvarchar(10)

Restituisce YES per le funzioni cast definite dall'utente e NO negli altri casi.

Restituisce sempre NO.

IS_IMPLICITLY_INVOCABLE

nvarchar(10)

Restituisce YES se è possibile richiamare in modo implicito la routine e NO se non è possibile richiamare in modo implicito la funzione.

Restituisce sempre NO.

CREATED

datetime

Ora di creazione della routine.

LAST_ALTERED

datetime

L'ultima volta che è stata modificata la funzione.

Esempi

Nell'esempio seguente vengono restituite informazioni su ogni stored procedure o funzione definita dall'utente del database.

USE AdventureWorks;
GO

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, 
       ROUTINE_DEFINITION AS [First 4000 characters], CREATED, LAST_ALTERED
FROM INFORMATION_SCHEMA.ROUTINES
ORDER BY ROUTINE_TYPE;