Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 11633|Répondre: 0

[Source] Il existe une différence entre les types de données Text et varchar(max) dans SQL Server

[Copié le lien]
Publié sur 13/06/2018 11:07:11 | | |
Premièrement, varchar(max) est un substitut au type de données texte utilisé par Microsoft,Les anciens types de champs comme le texte peuvent être annulés dans les versions ultérieures。 Donc, quel texte peut être sauvegardé, varchar(max) peut clairement l’être. En fait, le nombre de caractères qu’il peut stocker est très important. Les 420 millions de caractères qui peuvent être stockés sont difficiles à atteindre, ce que je crois être difficile.

Je ne le savais qu’avantLe texte et l’image sont des types de données qui peuvent être obsolètes par SQL Server, mais la raison précise n’est pas claire, en lisant aujourd’hui, j’ai trouvé la différence entre text et varchar(max) et nvarchar(max), principalement à cause de la restriction des opérateurs, le texte ne peut être utilisé que par les fonctions suivantes :
fonctionÉnoncé
LONGUEUR DES DONNÉESTEXTE LU
PATINDEXDÉFINIR LA TAILLE DU TEXTE
SOUS-CHAÎNETEXTE DE MISE À JOUR
TEXTPTRWRITETEXT
TEXTVALID


Par exemple, si le type de données de la colonne « Texte » est du texte, alors il ne peut pas être utilisé pour des opérations telles que « = » et « left() », comme dans l’exemple suivant :

Créez un tableau et remplissez les données :

if existe (sélectionner * dans sysobjects où id = OBJECT_ID('[asdf]') et OBJECTPROPERTY(id, 'IsUserTable') = 1)

TABLE DE DÉBARQUEMENT [ASDF]

CREATE TABLE [asdf] (

[intest] [int] IDENTITÉ (1, 1) NON NULLE ,

[texte] [texte] NULL ,

[varcharmax] varchar(max) NULL )

MODIFIER TABLE [ASDF] AVEC CONTRAINTE D’AJOUT NOCHECK [PK_asdf] CLÉ PRIMAIRE NON CLUSTERÉE ( [inttest] )



METS IDENTITY_INSERT [ASDF] EN



INSÉRER [asdf] ( [inttest] , [texte] , [varcharmax] ) VALEURS ( 1 , '1111111' , '1111111' )



DÉCLENCHEZ IDENTITY_INSERT [ASDF]

Lancez la requête :

Enquête 1 :
SELECT [texte]

      ,[varcharmax]

DE [testDB]. [dbo]. [ASDF]



[texte] ='11111' ET

[varcharmax] = '1111111'


Le message d’erreur suivant apparaît :

Msg 402, Niveau 16, État 1, Ligne 1

Les types de données text et varchar ne sont pas compatibles dans l’opérateur égal à .

Enquête 2 :
SELECT [texte]

      ,[varcharmax]

DE [testDB]. [dbo]. [ASDF]



[varcharmax] = '1111111'


peut fonctionner avec succès



Dans MS SQL2005 et au-delà, ajoutez des types de données à grande valeur (varchar(max), nvarchar(max), varbinary(max)). Le type de données à grande valeur peut stocker jusqu’à 2^30-1 octet de données.

Ces types de données sont comportementalement identiques aux types de données plus petits varchar, nvarchar et varbinary.

Microsoft prétend remplacer les types de données texte, ntext et image précédents par ce type de données, et la correspondance entre eux est la suivante :

varchar(max)-------texte ;

nvarchar(max)-----ntext ;

varbinary(max)----image.



Avec les types de données à grande valeur, il est beaucoup plus flexible de travailler avec des données de grande valeur qu’auparavant. Par exemple, le texte ne peut pas être utilisé « comme » avant, mais après varchar(max), il n’y a plus ces problèmes, car varchar(max) est le même comportement que varchar(n), donc ce qui peut être utilisé dans varcahr peut être utilisé sur varchar(max).

De plus, cela permet l’utilisation de déclencheurs AFTER sur les références de colonnes de type de données de grande valeur dans les tables insérées et supprimées. Le texte n’est pas bon, en résumé, après avoir utilisé le type de données à grande valeur, je me dis « ma taille ne me fait plus mal, mes jambes ne me font plus mal, et je peux monter au sixième étage en une seule respiration ». Qu’attendez-vous ? Utilisez le type à grande valeur.






Précédent:Uh-huh, uh-huh, uh-huh
Prochain:EF (expression lambda) interroge plusieurs exceptions rencontrées dans les données
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com