|
|
Publicado en 13/6/2018 11:07:11
|
|
|

Primero, varchar(max) es un sustituto del tipo de dato de texto utilizado por Microsoft,Tipos de campos antiguos, como el texto, pueden cancelarse en versiones posteriores。 Así que qué texto se puede guardar, varchar( max) definitivamente se puede guardar. De hecho, el número de caracteres que puede almacenar es muy grande. Los 420 millones de caracteres que se pueden almacenar son difíciles de alcanzar, lo cual creo que es complicado.
Solo lo sabía antesEl texto y la imagen son tipos de datos que pueden quedar obsoletos para SQL Server, pero la razón específica no está clara; cuando leí hoy, encontré la diferencia entre text y varchar(max) y nvarchar(max), principalmente debido a la restricción de operadores, el texto solo puede ser usado por las siguientes funciones:
| función | Enunciado | | LONGITUD DE DATOS | TEXTO LEÍDO | | PATINDEX | TAMAÑO DE TEXTO DE ESTABLECER | | SUBCADENA | ACTUALIZACIÓN | | TEXTPTR | WRITETEXT | | TEXTVALID | |
Por ejemplo, si el tipo de dato de la columna "Text" es texto, entonces no puede usarse para operaciones como "=" y "left()", como el siguiente ejemplo:
Crea una tabla y rellena los datos:
if existes (selecciona * de sysobjects donde id = OBJECT_ID('[asdf]') y OBJECTPROPERTY(id, 'IsUserTable') = 1)
MESA DE CAÍDA [ASDF]
CREAR TABLA [asdf] (
[intest] [int] IDENTIDAD (1, 1) NO NULA ,
[texto] [texto] NULL ,
[varcharmax] varchar(max) NULL )
ALTER TABLE [ASDF] CON NOCHECK ADD RESTRICT [PK_asdf] CLAVE PRIMARIA NO CLUSTERED ( [inttest] )
ACTIVA IDENTITY_INSERT [ASDF]
INSERTAR [asdf] ( [inttest] , [texto] , [varcharmax] ) VALORES ( 1 , '1111111', '1111111' )
LANZA IDENTITY_INSERT [ASDF]
Ejecuta la consulta:
Consulta 1: SELECT [texto]
,[varcharmax]
DE [testDB]. [dbo]. [asdf]
Dónde
[texto] ='11111' Y
[varcharmax] = '1111111'
Aparece el siguiente mensaje de error:
Profesor 402, Nivel 16, Estado 1, Línea 1
Los tipos de datos text y varchar no son compatibles en el operador igual a .
Consulta 2: SELECT [texto]
,[varcharmax]
DE [testDB]. [dbo]. [asdf]
Dónde
[varcharmax] = '1111111'
puede funcionar con éxito
En MS SQL2005 y superiores, añade tipos de datos de gran valor (varchar(max), nvarchar(max), varbinary(max)). El tipo de dato de gran valor puede almacenar hasta 2^30-1 byte de datos.
Estos tipos de datos son conductualmente idénticos a los tipos de datos más pequeños varchar, nvarchar y varbinary.
Microsoft pretende sustituir los tipos de datos de texto, ntext e imagen anteriores por este tipo de datos, y la correspondencia entre ellos es:
varchar(max)-------texto;
nvarchar(max)-----ntext;
varbinary(max)----image.
Con tipos de datos de gran valor, es mucho más flexible trabajar con datos de alto valor que antes. Por ejemplo, el texto no puede usarse 'como' antes, pero después de varchar(max), no hay estos problemas, porque varchar(max) es igual que varchar(n) en comportamiento, por lo que lo que se puede usar en varcahr puede usarse en varchar(max).
Además, esto soporta el uso de disparadores AFTER en referencias de columnas de tipo de datos de gran valor en tablas insertadas y eliminadas. el texto no es bueno, en resumen, después de usar el tipo de dato de gran valor, pienso "ya no me duele la cintura, no me duelen las piernas y puedo subir hasta el sexto piso en una sola respiración". ¿A qué esperas? Usa el tipo de gran valor.
|
Anterior:Ajá, ajá, ajáPróximo:EF (expresión lambda) consulta varias excepciones encontradas en los datos
|