Condividi tramite


sp_unbindefault (Transact-SQL)

Si applica a: SQL Server

Disassocia, o rimuove, un valore predefinito da una colonna o da un tipo di dati alias nel database corrente.

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. È consigliabile creare definizioni predefinite usando la parola chiave DEFAULT nelle istruzioni ALTER TABLE o CREATE TABLE .

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_unbindefault
    [ @objname = ] N'objname'
    [ , [ @futureonly = ] 'futureonly' ]
[ ; ]

Argomenti

[ @objname = ] N'objname'

Nome della tabella e della colonna o del tipo di dati alias da cui l'impostazione predefinita deve essere non associato. @objname è nvarchar(776), senza impostazione predefinita. SQL Server tenta prima di tutto di risolvere gli identificatori in due parti nei nomi di colonna, quindi nei tipi di dati alias.

Quando si disassocia un valore predefinito da un tipo di dati alias, vengono disassociate anche le colonne di tale tipo di dati con lo stesso valore predefinito. Le colonne di tale tipo di dati a cui il valore predefinito è associato in modo diretto non vengono modificate.

Nota

@objname può contenere parentesi quadre [] come caratteri identificatori delimitati. Per altre informazioni, vedere Identificatori di database.

[ @futureonly = ] 'futureonly'

Utilizzato solo quando si annulla l'associazione di un valore predefinito da un tipo di dati alias. @futureonly è varchar(15), con il valore predefinito NULL. Quando @futureonly è futureonly, le colonne esistenti del tipo di dati non perdono il valore predefinito specificato.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

Per visualizzare il testo di un valore predefinito, eseguire sp_helptext con il nome del valore predefinito come parametro.

Autorizzazioni

Per disassociare un valore predefinito da una colonna di una tabella, è necessario disporre dell'autorizzazione ALTER per la tabella. Per disassociare un valore predefinito da un tipo di dati alias, è necessario disporre dell'autorizzazione CONTROL per il tipo o dell'autorizzazione ALTER per lo schema a cui il tipo appartiene.

Esempi

R. Annullare l'associazione di un valore predefinito da una colonna

Nell'esempio seguente viene disassociato il valore predefinito dalla colonna hiredate di una tabella employees.

EXEC sp_unbindefault 'employees.hiredate';

B. Annullare l'associazione di un valore predefinito da un tipo di dati alias

Nell'esempio seguente viene disassociato il valore predefinito dal tipo di dati alias ssn. La disassociazione viene applicata sia alle colonne di tale tipo di dati già esistenti che a quelle che verranno create in futuro.

EXEC sp_unbindefault 'ssn';

C. Usare il futureonly_flag

Nell'esempio seguente la disassociazione viene impostata per i futuri utilizzi del tipo di dati alias ssn senza alterare le colonne ssn esistenti.

EXEC sp_unbindefault 'ssn', 'futureonly';

D. Usare identificatori delimitati

Nell'esempio seguente viene illustrato l'uso di identificatori delimitati nel parametro @objname . Si noti il punto come parte del nome della tabella. sp_unbindefault Nella parte l'oggetto contiene due punti, il primo fa parte del nome della tabella e il secondo distingue il nome della tabella dal nome della colonna.

--
CREATE TABLE [t.3] (c1 INT);

CREATE DEFAULT default2 AS 0;
GO

EXEC sp_bindefault 'default2', '[t.3].c1';

EXEC sp_unbindefault '[t.3].c1';