Constantes (Transact-SQL)
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.
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 (#). A las constantes de cadena de caracteres se les asigna la intercalación predeterminada de la base de datos actual, a menos que se utilice la cláusula COLLATE para especificar una intercalación. 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.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 el proveedor de Microsoft SQL Server Native Client y el controlador ODBC utilizan 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 8.000 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 están precedidas por el identificador N (N es el idioma nacional en el estándar SQL-92). 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. A las constantes Unicode se les asigna la intercalación predeterminada de la base de datos actual, a menos que se utilice la cláusula COLLATE para especificar una intercalación. Los datos Unicode se almacenan con 2 bytes por carácter en lugar de 1 byte por carácter, como los datos de cadenas de caracteres. Para obtener más información, vea Compatibilidad con la intercalación y Unicode.Las constantes de cadena Unicode aceptan intercalaciones mejoradas.
[!NOTA]
Las constantes Unicode con más de 8.000 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 8.000 bytes se consideran como tipos de datos varbinary(max).
Constantes bit
Las constantes de tipo bit se representan con los números 0 ó 1, y no se incluyen entre comillas. Si se utiliza un número mayor que uno, se convierte en uno.Constantes datetime
Las constantes de tipo datetime se representan mediante valores de fecha en formatos específicos de cadenas de caracteres, incluidos entre comillas simples.Estos son algunos ejemplos de constantes datetime:
'December 5, 1985' '5 December, 1985' '851205' '12/5/98'
Ejemplos de constantes de hora:
'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.Éstos 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.Éstos son algunos ejemplos de constantes decimal:
1894.1204 2.0
Constantes float y real
Las constantes de tipo float y real se representan en notación científica.Éstos son algunos ejemplos de valores de tipo 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 no se tienen en cuenta en ningún lugar del valor literal money especificado.
Éstos son algunos ejemplos de constantes money:
$12 $542023.14
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
Especificar números negativos y positivos
Para indicar si un número es positivo o negativo, aplique el operador unario + 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 son positivas si no se aplica el operador unario + 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
SQL Server admite las constantes de cadena de caracteres y Unicode compatibles con las intercalaciones mejoradas. Para obtener más información, vea la cláusula COLLATE (Transact-SQL).