Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 11633|Resposta: 0

[Fonte] Existe uma diferença entre os tipos de dados Text e varchar(max) no SQL Server

[Copiar link]
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çãoEnunciado
COMPRIMENTO DOS DADOSTEXTO LIDO
PATINDEXDEFINIR O TAMANHO DO TEXTO
SUBSTRINGATUALIZAÇÃO
TEXTPTRWRITETEXT
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-huh
Próximo:EF (expressão lambda) consulta várias exceções encontradas nos dados
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com