Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 11633|Antwort: 0

[Quelle] Es gibt einen Unterschied zwischen Text- und varchar(max)-Datentypen in SQL Server

[Link kopieren]
Veröffentlicht am 13.06.2018 11:07:11 | | |
Erstens ist varchar(max) ein Ersatz für den von Microsoft verwendeten Textdatentyp,Ältere Feldtypen wie Text können in späteren Versionen gestrichen werden。 Also kann der Text gespeichert werden, varchar(max) definitiv gespeichert werden. Tatsächlich ist die Anzahl der gespeicherten Zeichen sehr groß. Die 420 Millionen Zeichen, die gespeichert werden können, sind schwer zu erreichen, was meiner Meinung nach auch schwer zu erreichen ist.

Ich wusste es vorher nurText und Bild sind Datentypen, die durch SQL Server möglicherweise veraltet sind, aber der genaue Grund ist nicht klar, als ich heute las, stellte ich fest, dass der Unterschied zwischen Text und varchar(max) und nvarchar(max) hauptsächlich wegen der Einschränkung der Operatoren nur von folgenden Funktionen verwendet werden kann:
FunktionAussage
DATENLÄNGELESETEXT
PATINDEXTEXTGRÖSSE FESTLEGEN
SUBSTRINGAKTUALISIERUNGSTEXT
TEXTPTRWRITETEXT
TEXTVALID


Wenn zum Beispiel der Datentyp der Spalte "Text" Text ist, kann er nicht für Operationen wie "=" und "links()" verwendet werden, wie im folgenden Beispiel:

Erstellen Sie eine Tabelle und füllen Sie die Daten aus:

wenn existiert (select * aus Sysobjects, wobei id = OBJECT_ID('[asdf]') und OBJECTPROPERTY(id, 'IsUserTable') = 1) existiert

DROP TABLE [asdf]

TABELLE ERSTELLEN [asdf] (

[inttest] [int] IDENTITÄT (1, 1) NICHT NULL ,

[Text] [Text] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABLE [ASDF] MIT NOCHECK ADD CONSTRAINT [PK_asdf] PRIMÄRSCHLÜSSEL NICHT-CLUSTERED ( [inttest])



SETZ IDENTITY_INSERT [ASDF] AN



INSERT [asdf] ( [inttest] , [text] , [varcharmax] ) WERTE ( 1 , '1111111' , '1111111' )



SETZE IDENTITY_INSERT [ASDF] LOS

Führe die Abfrage aus:

Anfrage 1:
AUSWÄHLEN [Text]

      ,[varcharmax]

AUS [testDB]. [dbo]. [ASDF]

wobei

[Text] ='11111' UND

[varcharmax] = '1111111'


Die folgende Fehlermeldung erscheint:

Nachricht 402, Stufe 16, Bundesstaat 1, Zeile 1

Die Datentypen Text und Varchar sind im Equal-to-Operator nicht kompatibel.

Anfrage 2:
AUSWÄHLEN [Text]

      ,[varcharmax]

AUS [testDB]. [dbo]. [ASDF]

wobei

[varcharmax] = '1111111'


kann erfolgreich laufen



In MS SQL2005 und höher werden große Datentypen hinzugefügt (varchar(max), nvarchar(max), varbinary(max)). Der große Datentyp kann bis zu 2^30-1 Byte Daten speichern.

Diese Datentypen sind verhaltensmäßig identisch mit den kleineren Datentypen varchar, nvarchar und varbinär.

Microsofts Behauptung ist, die vorherigen Text-, nText- und Bilddatentypen durch diesen Datentyp zu ersetzen, und die Entsprechung zwischen ihnen lautet:

varchar(max)-------text;

nvarchar(max)-----ntext;

varbinary(max)----Bild.



Bei hochwertigen Datentypen ist es viel flexibler, mit hochwertigen Daten zu arbeiten als zuvor. Zum Beispiel kann Text vorher nicht 'like' verwendet werden, aber nach varchar(max) gibt es diese Probleme nicht, weil varchar(max) im Verhalten dasselbe ist wie varchar(n), sodass das, was in varcahr verwendet werden kann, auch auf varchar(max) verwendet werden kann.

Zusätzlich unterstützt dies die Verwendung von AFTER-Triggern bei Spaltenreferenzen mit hohem Datenwert in eingefügten und gelöschten Tabellen. Text ist nicht gut, kurz gesagt: Nach der Verwendung des Big-Value-Datentyps bin ich: "Meine Taille tut nicht mehr weh, meine Beine tun nicht mehr weh, und ich kann in einem Atemzug bis in den sechsten Stock gehen". Worauf wartest du? Nutze den Typ mit großem Wert.






Vorhergehend:Uh-huh, eh-huh, eh-huh
Nächster:EF (Lambda-Ausdruck) fragt mehrere Ausnahmen ab, die in den Daten auftreten
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com