Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Crea un objeto denominado valor predeterminado. Cuando se enlaza a una columna o a un tipo de datos de alias, un valor predeterminado especifica un valor que debe insertarse en la columna a la que está enlazado el objeto, o en todas las columnas, en el caso de un tipo de datos de alias, si no se proporciona explícitamente un valor durante la inserción.
Importante
Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su lugar, use definiciones predeterminadas creadas mediante la DEFAULT palabra clave de ALTER TABLE o CREATE TABLE.
Convenciones de sintaxis de Transact-SQL
Sintaxis
CREATE DEFAULT [ schema_name . ] default_name
AS constant_expression [ ; ]
Argumentos
schema_name
El nombre del esquema al que pertenece el valor predeterminado.
default_name
El nombre del valor predeterminado. Los nombres predeterminados deben cumplir las reglas de los identificadores. Especificar el nombre del propietario del valor predeterminado es opcional.
constant_expression
Una expresión que contiene solo valores constantes (no puede contener el nombre de ninguna columna u otros objetos de base de datos). Puede utilizar cualquier constante, función integrada o expresión matemática, excepto las que contienen tipos de datos de alias. No es posible utilizar funciones definidas por el usuario. Incluir constantes de caracteres y fechas entre comillas simples ('); las constantes monetarias, enteros y de punto flotante no requieren comillas. Los datos binarios deben ir precedidos de 0xy los datos monetarios deben ir precedidos de un signo de dólar ($). El valor predeterminado debe ser compatible con el tipo de datos de la columna.
Observaciones
Solo puede crear un nombre predeterminado en la base de datos actual. En una base de datos, los nombres predeterminados deben ser únicos para cada esquema. Al crear un valor predeterminado, use sp_bindefault para enlazarlo a una columna o a un tipo de datos de alias.
Si el valor predeterminado no es compatible con la columna a la que está enlazado, SQL Server genera un mensaje de error al intentar insertar el valor predeterminado. Por ejemplo, N/A no se puede usar como valor predeterminado para una columna numérica.
Si el valor predeterminado es demasiado largo para la columna a la que está enlazado, el valor se trunca.
CREATE DEFAULT Las instrucciones no se pueden combinar con otras instrucciones Transact-SQL en un solo lote.
Un valor predeterminado debe quitarse antes de crear otro con el mismo nombre. Además, el valor predeterminado debe desenlazarse sp_unbindefault ejecutando antes de quitarlo.
Si una columna tiene un valor predeterminado y una regla asociados, el valor predeterminado no debe infringir la regla. No se insertará nunca un valor predeterminado que esté en conflicto con una regla y SQL Server genera un mensaje de error cada vez que se intente insertar el valor predeterminado.
Cuando se enlaza a una columna, un valor predeterminado se inserta cuando:
- No se ha insertado un valor explícitamente.
-
DEFAULT VALUESLas palabras clave oDEFAULTse usan conINSERTpara insertar valores predeterminados.
Si especifica NOT NULL al crear una columna y no crea un valor predeterminado para ella, se genera un mensaje de error cuando un usuario no puede realizar una entrada en esa columna. En la tabla siguiente se muestra la relación entre la existencia de un valor predeterminado y la definición de una columna como NULL o NOT NULL. Las entradas de la tabla muestran el resultado.
| Definición de columna | Sin entrada, sin valor predeterminado | Sin entrada, valor predeterminado | Escriba NULL, sin valor predeterminado. |
Escriba , valor predeterminado.NULL |
|---|---|---|---|---|
NULL |
NULL |
Predeterminado | NULL |
NULL |
NOT NULL |
Error | Predeterminado | Error | Error |
Para cambiar el nombre de un valor predeterminado, use sp_rename Para un informe de forma predeterminada, use sp_help.
Permisos
Para usar CREATE DEFAULT, como mínimo, un usuario debe tener CREATE DEFAULT permiso en la base de datos actual y ALTER el permiso en el esquema en el que se crea el valor predeterminado.
Ejemplos
A. Creación de un carácter básico predeterminado
En el siguiente ejemplo se crea un valor predeterminado de caracteres denominado unknown.
USE AdventureWorks2022;
GO
CREATE DEFAULT phonedflt
AS 'unknown';
B. Enlazar un valor predeterminado
En el siguiente ejemplo se enlaza el valor predeterminado creado en el ejemplo A. El valor predeterminado solo entra en efecto si no hay ninguna entrada especificada en la columna Phone de la tabla Contact.
Nota
Omitir cualquier entrada es diferente de indicar NULL explícitamente en una INSERT instrucción .
Como no existe un valor predeterminado llamado phonedflt, se producirá un error en la siguiente instrucción Transact-SQL. Este ejemplo solo tiene propósitos ilustrativos.
USE AdventureWorks2022;
GO
EXECUTE sp_bindefault 'phonedflt', 'Person.PersonPhone.PhoneNumber';
Contenido relacionado
- MODIFICAR TABLA (Transact-SQL)
- CREAR REGLA (Transact-SQL)
- CREAR TABLA (Transact-SQL)
- DROP DEFAULT (Transact-SQL)
- REGLA DE LA CAÍDA (Transact-SQL)
- Expresiones (Transact-SQL)
- INSERTAR (Transact-SQL)
- sp_bindefault (Transact-SQL)
- sp_help (Transact-SQL)
- sp_helptext (Transact-SQL)
- sp_rename (Transact-SQL)
- sp_unbindefault (Transact-SQL)