Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a:Azure SQL Database
Azure SQL Managed Instance
Nuevo tipo de datos json nativo que almacena documentos JSON en un formato binario nativo.
El tipo json proporciona un almacenamiento de alta fidelidad de documentos JSON optimizados para facilitar la consulta y manipulación, y proporciona las siguientes ventajas sobre el almacenamiento de datos JSON en varchar o nvarchar:
El tipo json almacena internamente los datos mediante codificación UTF-8, Latin1_General_100_BIN2_UTF8
. Este comportamiento coincide con la especificación JSON.
Para obtener más información sobre cómo consultar datos JSON, consulte Datos JSON en SQL Server.
La sintaxis de uso del tipo json es similar a todos los demás tipos de datos de SQL Server de una tabla.
column_name JSON [NOT NULL | NULL] [CHECK(constraint_expression)] [DEFAULT(default_expression)]
El tipo json se puede usar en la definición de columna contenida en una instrucción CREATE TABLE
, por ejemplo:
CREATE TABLE Orders (order_id int, order_details JSON NOT NULL);
Las restricciones se pueden especificar como parte de la definición de columna, por ejemplo:
CREATE TABLE Orders (order_id int, order_details JSON NOT NULL
CHECK (JSON_PATH_EXISTS(order_details, '$.basket') = 1)
);
La compatibilidad con funciones JSON se introdujo por primera vez en SQL Server 2016 (13.x). El tipo de json
json está disponible en todos los niveles de compatibilidad de la base de datos.
Nota
El de tipo de datos JSON de está actualmente en versión preliminar para Azure SQL Database e Instancia administrada de Azure SQL configuradas con la always-up-to-date directiva de actualización. No está disponible en Instancia administrada de Azure SQL configurada con la directiva de actualización de SQL Server 2022.
Todas las funciones JSON admiten el tipo json sin cambios de código ni diferencias de uso necesarias.
Para obtener una lista completa de las funciones JSON, consulte funciones JSON.
No hay ningún tipo de índice especial para los datos JSON.
El tipo json no se puede usar como columna de clave en una instrucción CREATE INDEX
. Sin embargo, se puede especificar una columna json como una columna incluida en una definición de índice. Además, una columna json puede aparecer en la cláusula WHERE
de un índice filtrado.
La conversión explícita mediante CAST
o CONVERT
desde el tipo json se puede realizar en tipos char, nchar, varchar o nvarchar. No se permiten todas las conversiones implícitas, de forma similar al comportamiento de xml. Del mismo modo, solo char, nchar, varchar, nvarchar se pueden convertir explícitamente al tipo json.
El tipo json no se puede usar con el tipo sql_variant ni asignarse a una variable o columna de sql_variant. Esta restricción es similar a los tipos de datos basados en varchar(max), varbinary(max), nvarchar(max), xml y CLR.
Puede convertir columnas existentes, como una columna de varchar(max) en json mediante ALTER TABLE
. De forma similar al tipo de datos xml
Para más información, vea Conversión de tipos de datos.
El tipo json se puede usar como parámetro o tipo de valor devuelto en una función definida por el usuario o como parámetro de un procedimiento almacenado. El tipo json es compatible con desencadenadores y vistas.
Actualmente, el formato nativo de la herramienta bcp contiene el documento json como varchar o nvarchar. Debe especificar un archivo de formato para designar una columna de tipo de datos json.
No se permite la creación de tipo de alias mediante CREATE TYPE
para el tipo json . Este es el mismo comportamiento que el tipo xml.
El uso de SELECT ... INTO
con el tipo JSON crea una tabla con el tipo JSON.
El comportamiento de CAST ( ... AS JSON)
devuelve un tipo json, pero el procedimiento almacenado del sistema sp_describe_first_result_set no devuelve el tipo de datos json. Por lo tanto, muchos clientes y controladores de acceso a datos verán un tipo de datos varchar o nvarchar.
Latin_General_100_bin2_utf8
.Actualmente, la función OPENJSON()
no acepta el tipo json, actualmente que es una conversión implícita. Convierta explícitamente en nvarchar(max) primero.
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoy