Constantes (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)
Una constante, también conocida como valor literal o escalar, es un símbolo que representa un valor de datos específico. El formato de las constantes depende del tipo de datos del valor que representan.
Nota:
El término constante en el desarrollo de aplicaciones y el concepto de una constante en Transact-SQL (T-SQL) no son iguales. No hay ninguna manera específica de establecer un valor estático global en T-SQL. Las constantes de T-SQL son equivalentes a los valores literales de cadena.
Constantes de cadena de caracteres
Las constantes de cadena de caracteres van entre comillas simples e incluyen caracteres alfanuméricos (a
-z
, A
-Z
y 0
-9
) y caracteres especiales, como el signo de exclamación (!
), la arroba (@
) y el signo de número (#
). La intercalación predeterminada de la base de datos actual se asigna a las constantes de la cadena de caracteres. Si se utiliza la cláusula COLLATE, la conversión a la página de códigos predeterminada de la base de datos sigue teniendo lugar antes de la conversión a la intercalación especificada por la cláusula COLLATE. Las cadenas de caracteres escritas por los usuarios se evalúan a través de la página de códigos del equipo y, si es necesario, se traducen a la página de códigos predeterminada de la base de datos.
Nota
Cuando se especifica una intercalación habilitada para UTF8 mediante la cláusula COLLATE, la conversión a la página de códigos predeterminada de la base de datos sigue teniendo lugar antes de la conversión a la intercalación especificada por la cláusula COLLATE. La conversión no se realiza directamente en la intercalación habilitada para Unicode especificada. Para obtener más información, vea Cadena de Unicode.
Si la opción QUOTED_IDENTIFIER se ha establecido en OFF para una conexión, las cadenas de caracteres también pueden encerrarse entre comillas dobles, pero Microsoft OLE DB Driver for SQL Server y ODBC Driver for SQL Server usan automáticamente SET QUOTED_IDENTIFIER ON
. Se recomienda el uso de comillas simples.
Si una cadena de caracteres entre comillas simples contiene una comilla, represente la comilla interna con dos comillas simples. Esto no es necesario en las cadenas incluidas entre comillas dobles.
Éstos son algunos ejemplos de cadenas de caracteres:
'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"
Las cadenas vacías se representan como dos comillas simples sin nada entre ellas. En el modo de compatibilidad 6.x, una cadena vacía se trata como un espacio.
Las constantes de cadena de caracteres admiten intercalaciones mejoradas.
Nota
Las constantes de caracteres con más de 8000 bytes se consideran como tipos de datos varchar(max).
Cadenas Unicode
Las cadenas Unicode tienen un formato similar al de las cadenas de caracteres, pero se utiliza en ellas el identificador N
como prefijo (N es el idioma nacional en el estándar SQL-92).
Importante
El prefijo N
tiene que estar en mayúsculas.
Por ejemplo, 'Michél'
es una constante de caracteres, mientras que N'Michél'
es una constante Unicode. Las constantes Unicode se interpretan como datos Unicode y no se evalúan mediante una página de códigos. Las constantes Unicode tienen intercalación. Esta intercalación controla principalmente las comparaciones y la distinción entre mayúsculas y minúsculas. La intercalación predeterminada de la base de datos actual se asigna a las constantes de Unicode. Si se utiliza la cláusula COLLATE, la conversión a la intercalación predeterminada de la base de datos sigue teniendo lugar antes de la conversión a la intercalación especificada por la cláusula COLLATE. Para más información, consulte Compatibilidad con la intercalación y Unicode.
Las constantes de cadena Unicode aceptan intercalaciones mejoradas.
Nota
Las constantes Unicode con más de 8000 bytes se consideran como tipos de datos nvarchar(max).
Constantes binarias
Las constantes binarias tienen el prefijo 0x
y son cadenas de números hexadecimales. No se incluyen entre comillas.
Éstos son algunos ejemplos de cadenas binarias:
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
Nota
Las constantes binarias con más de 8000 bytes se consideran como tipos de datos varbinary(max).
constantes bit
Las constantes de tipo bit se representan con los números 0
o 1
y no se incluyen entre comillas. Si se utiliza un número mayor que 1
, se convierte en 1
.
constantes datetime
Las constantes de tipo datetime se representan mediante valores de fecha en formatos específicos de cadenas de caracteres, y se incluyen entre comillas simples.
Estos son algunos ejemplos de constantes datetime:
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Ejemplos de constantes datetime:
'14:30:24'
'04:24 PM'
constantes integer
Las constantes de tipo integer se representan mediante una cadena de números sin comillas y sin separadores decimales. Las constantes de tipo integer deben ser números enteros y no pueden contener decimales.
Estos son algunos ejemplos de constantes integer:
1894
2
constantes decimal
Las constantes de tipo decimal se representan mediante una cadena de números sin comillas y con separador decimal.
Estos son algunos ejemplos de constantes decimal:
1894.1204
2.0
float
y real
constantes
Las constantes de tipo float y real se representan en notación científica.
Estos son algunos ejemplos de valores de float o real:
101.5E5
0.5E-2
constantes money
Las constantes de tipo money se representan como una cadena de números con un separador decimal y un símbolo de moneda opcionales como prefijo. Las constantes de tipo money no se incluyen entre comillas.
SQL Server no impone ninguna clase de reglas de agrupamiento, como la inserción de una coma (,
) cada tres dígitos, en las cadenas que representan dinero.
Nota
Las comas se omiten en cualquier parte de un literal de cadena que se convierte al tipo de datos money.
Estos son algunos ejemplos de constantes money:
$12
$542023.14
$-23
constantes uniqueidentifier
Las constantes de tipo uniqueidentifier son una cadena que representa un GUID. Se pueden especificar en formato de cadena de caracteres o binario.
Estos dos ejemplos especifican el mismo GUID:
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
Especificación de números negativos y positivos
Para indicar si un número es positivo o negativo, aplique los operadores unarios +
o -
a una constante numérica. Esto crea una expresión numérica que representa el valor numérico con signo. Las constantes numéricas usan positivos cuando no se aplican los operadores unarios +
o -
.
Expresiones integer con signo:
+145345234
-2147483648
Expresiones decimal con signo:
+145345234.2234
-2147483648.10
Expresiones float con signo:
+123E-3
-12E5
Expresiones money con signo:
-$45.56
+$423456.99
Intercalaciones mejoradas
Motor de base de datos admite las constantes de cadena de caracteres y Unicode compatibles con las intercalaciones mejoradas. Para más información, vea la cláusula COLLATE (Transact-SQL).