Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 11633|Respuesta: 0

[Fuente] Hay una diferencia entre los tipos de datos Text y varchar(max) en SQL Server

[Copiar enlace]
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ónEnunciado
LONGITUD DE DATOSTEXTO LEÍDO
PATINDEXTAMAÑO DE TEXTO DE ESTABLECER
SUBCADENAACTUALIZACIÓN
TEXTPTRWRITETEXT
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
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com