sp_unbindrule (Transact-SQL)
Si applica a: SQL Server
Disassocia una regola 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_unbindrule
[ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
Argomenti
[ @objname = ] N'objname'
Nome della tabella e della colonna o del tipo di dati alias da cui la regola 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. La disassociazione di una regola da un tipo di dati alias viene estesa anche alle colonne dello stesso tipo di dati a cui è applicata la regola. Non vengono tuttavia modificate le colonne di questo stesso tipo di dati a cui la regola è associata in modo diretto.
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 una regola da un tipo di dati alias. @futureonly è varchar(15), con il valore predefinito NULL
. Quando @futureonly è futureonly
, le colonne esistenti di quel tipo di dati non perdono la regola specificata.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
Per visualizzare il testo di una regola, eseguire sp_helptext
con il nome della regola come parametro.
Quando una regola non è associata, le informazioni sull'associazione vengono rimosse dalla sys.columns
tabella se la regola è stata associata a una colonna e dalla sys.types
tabella se la regola è stata associata a un tipo di dati alias.
Quando una regola non è associato da un tipo di dati alias, è anche unbound da qualsiasi colonna con tale tipo di dati alias. La regola potrebbe anche essere associata a colonne i cui tipi di dati sono stati successivamente modificati dalla clausola ALTER COLUMN di un'istruzione ALTER TABLE, è necessario scollegare specificamente la regola da queste colonne utilizzando sp_unbindrule
e specificando il nome della colonna.
Autorizzazioni
Per disassociare una regola dalla colonna di una tabella è necessaria l'autorizzazione ALTER sulla tabella. Per disassociare una regola da un tipo di dati alias è necessaria l'autorizzazione CONTROL sul tipo di dati o l'autorizzazione ALTER sullo schema a cui appartiene il tipo.
Esempi
R. Annullare l'associazione di una regola da una colonna
Nell'esempio seguente la regola viene disassociata dalla colonna startdate
di una tabella employees
.
EXEC sp_unbindrule 'employees.startdate';
B. Annullare l'associazione di una regola da un tipo di dati alias
Nell'esempio seguente la regola viene disassociata dal tipo di dati alias ssn
. La disassociazione viene applicata alle colonne di questo tipo di dati, sia esistenti che create successivamente.
EXEC sp_unbindrule ssn;
C. Usare futureonly_flag
Nell'esempio seguente la regola viene disassociata dal tipo di dati alias ssn
senza influire sulle colonne ssn
esistenti.
EXEC sp_unbindrule '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_bindrule
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.4] (c1 int);
GO
CREATE RULE rule2 AS @value > 100;
GO
EXEC sp_bindrule rule2, '[t.4].c1'
GO
EXEC sp_unbindrule '[t.4].c1';