Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 11633|Jawab: 0

[Sumber] Ada perbedaan antara tipe data Teks dan varchar(max) di SQL Server

[Salin tautan]
Diposting pada 13/06/2018 11.07.11 | | |
Pertama, varchar(max) adalah pengganti jenis data teks yang digunakan oleh Microsoft,Jenis kolom yang lebih lama seperti teks dapat dibatalkan di versi berikutnya。 Jadi teks apa yang bisa disimpan, varchar( max) pasti bisa disimpan. Faktanya, jumlah karakter yang dapat disimpannya sangat besar. 420 juta karakter yang dapat disimpan sulit dijangkau, yang saya yakini sulit dijangkau.

Saya hanya tahu sebelumnyateks dan gambar adalah jenis data yang mungkin usang oleh SQL Server, tetapi alasan spesifiknya tidak jelas, ketika saya membaca hari ini, saya menemukan perbedaan antara teks dan varchar(max) dan nvarchar(max), terutama karena pembatasan operator, teks hanya dapat digunakan oleh fungsi-fungsi berikut:
fungsiPernyataan
PANJANG DATATEKS BACA
PATINDEXATUR UKURAN TEKS
SUBSTRINGMEMPERBARUI TEKS
TEKSTULIS TEKS
TEKS VALID


Misalnya, jika jenis data kolom "Teks" adalah teks, maka jenis data tidak dapat digunakan untuk operasi seperti "=" dan "left()", seperti contoh berikut:

Buat tabel dan isi data:

if exists (pilih * dari sysobjects di mana id = OBJECT_ID('[asdf]') dan OBJECTPROPERTY(id, 'IsUserTable') = 1)

TABEL DROP [asdf]

BUAT TABEL [asdf] (

[inttest] [int] IDENTITAS (1, 1) BUKAN NOL ,

[teks] [teks] NOL ,

[varcharmax] varchar (maks) NULL )

UBAH TABEL [asdf] DENGAN NOCHECK ADD CONSTRAINT [PK_asdf] KUNCI UTAMA NONCLUSTERED ( [inttest] )



ATUR IDENTITY_INSERT [asdf] AKTIF



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



MATIKAN IDENTITY_INSERT [asdf]

Jalankan kueri:

Pertanyaan 1:
PILIH [teks]

      ,[varcharmax]

DARI [testDB]. [dbo]. [ASDF]

di mana

[text] ='11111' DAN

[varcharmax] = '1111111'


Pesan kesalahan berikut muncul:

Msg 402, Tingkat 16, Negara Bagian 1, Baris 1

Jenis data teks dan varchar tidak kompatibel dalam operator yang sama dengan.

Pertanyaan 2:
PILIH [teks]

      ,[varcharmax]

DARI [testDB]. [dbo]. [ASDF]

di mana

[varcharmax] = '1111111'


dapat berjalan dengan sukses



Di MS SQL2005 dan yang lebih baru, tambahkan tipe data bernilai besar (varchar(max), nvarchar(max), varbinary(max)). Tipe data bernilai besar dapat menyimpan hingga 2^30-1 byte data.

Tipe data ini secara perilaku identik dengan jenis data yang lebih kecil varchar, nvarchar, dan varbinary.

Klaim Microsoft adalah untuk mengganti tipe data teks, ntext, dan gambar sebelumnya dengan tipe data ini, dan korespondensi di antara keduanya adalah:

varchar (maks) -------teks;

nvarchar(maks)-----nteks;

varbinary(maks)----gambar.



Dengan tipe data bernilai besar, jauh lebih fleksibel untuk bekerja dengan data bernilai besar daripada sebelumnya. Misalnya, teks tidak dapat digunakan 'seperti' sebelumnya, tetapi setelah varchar(max), tidak ada masalah ini, karena varchar(max) sama dengan varchar(n) dalam perilaku, sehingga apa yang dapat digunakan di varcahr dapat digunakan pada varchar(max).

Selain itu, ini mendukung penggunaan pemicu AFTER pada referensi kolom tipe data bernilai besar dalam tabel yang disisipkan dan dihapus. teks tidak bagus, singkatnya, setelah menggunakan tipe data nilai besar, saya "pinggang saya tidak lagi sakit, kaki saya tidak sakit, dan saya bisa naik ke lantai enam dalam satu tarikan napas". Tunggu apalagi, gunakan tipe nilai besar.






Mantan:Uh-huh, eh-huh, eh-huh
Depan:ef (ekspresi lambda) mengkueri beberapa pengecualian yang ditemui dalam data
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com