|
|
Publicado em 13/06/2018 11:07:11
|
|
|

Primeiro, varchar(max) é um substituto para o tipo de dado de texto usado pela Microsoft,Tipos de campo mais antigos, como texto, podem ser cancelados em versões subsequentes。 Então, qual texto pode ser salvo, varchar(max) definitivamente pode ser salvo. Na verdade, o número de caracteres que pode armazenar é muito grande. Os 420 milhões de caracteres que podem ser armazenados são difíceis de alcançar, o que acredito ser difícil de alcançar.
Eu só sabia antestexto e imagem são tipos de dados que podem estar obsoletos pelo SQL Server, mas a razão específica não é clara, quando li hoje, encontrei a diferença entre text e varchar(max) e nvarchar(max), principalmente devido à restrição de operadores, o texto só pode ser usado pelas seguintes funções:
| função | Enunciado | | COMPRIMENTO DOS DADOS | TEXTO LIDO | | PATINDEX | DEFINIR O TAMANHO DO TEXTO | | SUBSTRING | ATUALIZAÇÃO | | TEXTPTR | WRITETEXT | | TEXTVALID | |
Por exemplo, se o tipo de dado da coluna "Texto" for texto, então ele não pode ser usado para operações como "=" e "left()", como o seguinte exemplo:
Crie uma tabela e preencha os dados:
se existe (selecione * de sysobjects onde id = OBJECT_ID('[asdf]') e OBJECTPROPERTY(id, 'IsUserTable') = 1)
MESA DE DESCIDA [ASDF]
CRIAR TABELA [asdf] (
[intest] [int] IDENTIDADE (1, 1) NÃO NULA ,
[texto] [texto] NULL ,
[varcharmax] varchar(max) NULL )
ALTER TABELA [ASDF] COM RESTRIÇÃO DE ADICIONAR NOCHECK [PK_asdf] CHAVE PRIMÁRIA NÃO CLUSTERIZADA ( [inttest] )
COLOQUE IDENTITY_INSERT [ASDF] LIGADO
INSERIR [asdf] ( [intter] , [texto] , [varcharmax] ) VALORES ( 1 , '1111111' , '1111111' )
COLOQUE IDENTITY_INSERT [ASDF]
Execute a consulta:
Consulta 1: SELECT [texto]
,[varcharmax]
DE [testDB]. [dbo]. [ASDF]
onde
[texto] ='11111' E
[varcharmax] = '1111111'
A seguinte mensagem de erro aparece:
Msg 402, Nível 16, Estado 1, Linha 1
Os tipos de dados text e varchar não são compatíveis no operador igual a .
Consulta 2: SELECT [texto]
,[varcharmax]
DE [testDB]. [dbo]. [ASDF]
onde
[varcharmax] = '1111111'
pode rodar com sucesso
No MS SQL2005 e superiores, adicione tipos de dados de grande valor (varchar(max), nvarchar(max), varbinary(max)). O tipo de dado de grande valor pode armazenar até 2^30-1 byte de dados.
Esses tipos de dados são comportamentalmente idênticos aos tipos menores varchar, nvarchar e varbinary.
A alegação da Microsoft é substituir os tipos anteriores de texto, texto narcisista e imagem por esse tipo de dado, e a correspondência entre eles é:
varchar(max)-------texto;
nvarchar(max)-----ntext;
varbinary(max)----imagem.
Com tipos de dados de grande valor, é muito mais flexível trabalhar com dados de grande valor do que antes. Por exemplo, texto não pode ser usado 'como' antes, mas depois de varchar(max), não há esses problemas, porque varchar(max) é igual a varchar(n) em comportamento, então o que pode ser usado em varcahr pode ser usado em varchar(max).
Além disso, isso suporta o uso de gatilhos AFTER em referências de colunas de tipo de dados de grande valor em tabelas inseridas e excluídas. texto não é bom, em resumo, depois de usar o tipo de dado de grande valor, eu penso "minha cintura não dói mais, minhas pernas não doem, e posso subir até o sexto andar em uma só respiração". O que você está esperando, use o tipo de grande valor.
|
Anterior:Uh-huh, uh-huh, uh-huhPróximo:EF (expressão lambda) consulta várias exceções encontradas nos dados
|