Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara memperbaiki konflik pemeriksaan dalam kueri SQL Server?

Anda dapat menyelesaikan masalah dengan memaksa susunan yang digunakan dalam kueri menjadi susunan tertentu, mis. SQL_Latin1_General_CP1_CI_AS atau DATABASE_DEFAULT . Misalnya:

SELECT MyColumn
FROM FirstTable a
INNER JOIN SecondTable b
ON a.MyID COLLATE SQL_Latin1_General_CP1_CI_AS = 
b.YourID COLLATE SQL_Latin1_General_CP1_CI_AS

Dalam kueri di atas, a.MyID dan b.YourID akan menjadi kolom dengan tipe data berbasis teks. Menggunakan COLLATE akan memaksa kueri untuk mengabaikan susunan default pada database dan sebagai gantinya menggunakan susunan yang disediakan, dalam hal ini SQL_Latin1_General_CP1_CI_AS .

Pada dasarnya apa yang terjadi di sini adalah bahwa setiap database memiliki susunannya sendiri yang "menyediakan aturan penyortiran, huruf besar/kecil, dan properti sensitivitas aksen untuk data Anda" (dari http://technet.microsoft.com/en-us/library/ms143726.aspx ) dan berlaku untuk kolom dengan tipe data tekstual , misalnya VARCHAR , CHAR , NVARCHAR , dll. Ketika dua database memiliki susunan yang berbeda, Anda tidak dapat membandingkan kolom teks dengan operator seperti persamaan (=) tanpa mengatasi konflik antara dua susunan yang berbeda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Setup Database Mail di SQL Server (SSMS)

  2. Kembalikan Hak Istimewa Tabel dari Server Tertaut di SQL Server (Contoh T-SQL)

  3. Pemikiran tentang SQL Server 2019 Editions

  4. Penyedia bernama penyedia pipa kesalahan 40 tidak dapat membuka koneksi ke SQL Server kesalahan 2

  5. SqlDataSourceEnumerator.Instance.GetDataSources() tidak menemukan contoh SQL server 2008 lokal