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

Bagaimana cara mengatur baris tabel dalam urutan menaik dan menyimpan tabel secara bersamaan?

Baris dalam tabel adalah tidak berurutan, jadi tidak masuk akal untuk berbicara tentang baris yang berurutan. Dan, hasil yang ditetapkan dari kueri tidak berurutan, kecuali jika Anda menggunakan order by klausa.

Karena itu, Anda dapat memiliki efek yang sama dengan menempatkan baris ke dalam tabel dengan cara yang teratur. Ini caranya.

select top 0 *
into new_table
from existing_table;

alter table new_table add new_table_id int identity(1, 1);

insert into new_table(<list of columns without new_table_id>)
    SELECT <list of columns without new_table_id>
    INTO new_table
    FROM existing_table
    ORDER BY col1, col2;

Kolom id dijamin dalam urutan yang benar. Dalam praktiknya, tampaknya baris akan dimasukkan secara berurutan. Sebenarnya, urutan penyisipan tidak dijamin meskipun nilai id diurutkan dengan benar.

Seperti yang disebutkan dalam komentar, Anda juga dapat melakukan:

alter table new_table add new_table_id int identity(1, 1) not null primary key;

Anda dapat melakukan ini karena tabel kosong. Sebagai kunci utama, data harus dimasukkan secara berurutan.

Sebagai catatan, meskipun. Kueri:

select *
from new_table;

tidak menjamin urutan hasil. Tidak ada bedanya apa urutan penyisipan ke dalam tabel. Anda tidak dapat bergantung pada hasil yang berada dalam urutan tertentu hanya karena baris diurutkan seperti itu. Misalnya, dalam lingkungan multi-utas, hasil umumnya tidak teratur, baik secara teori maupun praktik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlBulkSalin dari Daftar<>

  2. Cara menghapus baris secara efisien saat TIDAK menggunakan Tabel Truncate dalam tabel 500.000+ baris

  3. Pernyataan ALTER TABLE bertentangan dengan batasan CHECK di SQL Server - Tutorial SQL Server / TSQL Bagian 89

  4. Batasan SQL Server FILESTREAM

  5. Harus mendeklarasikan variabel skalar