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

Cara Menghapus File Data dari Database SQL Server (T-SQL)

Database SQL Server menyimpan data dan objeknya dalam file. Setiap database memiliki setidaknya satu file data (dan file log), tetapi tidak terbatas hanya pada satu – bisa memiliki banyak file data. Jika Anda pernah berada dalam situasi di mana Anda perlu menghapus file data dari database, Anda harus mengosongkan file tersebut terlebih dahulu, sebelum menghapusnya.

Tapi jangan khawatir, mengosongkan file tidak benar-benar menghapus data. Ini hanya memindahkan data file ke file lain dalam grup file yang sama.

Contoh di bawah ini menunjukkan cara mengosongkan file data, lalu menghapusnya dari database menggunakan Transact-SQL.

Contoh Singkat

Berikut adalah contoh cepat untuk menunjukkan kepada Anda cara mengosongkan file data dan menghapusnya dari database:

-- Empty the file
DBCC SHRINKFILE (Solutions2, EMPTYFILE);  
GO 

-- Remove the file
ALTER DATABASE Solutions  
REMOVE FILE Solutions2;  
GO

Jadi seperti yang dijelaskan, ini mengosongkan file, lalu menghapusnya sepenuhnya dari database. Saat Anda menggunakan EMPTYFILE , ini memindahkan semua data dari file ke file lain dalam grup file yang sama. Oleh karena itu, Anda harus memastikan ini bukan satu-satunya file di grup file (jika tidak, Anda akan mendapatkan kesalahan). EmptyFile juga meyakinkan Anda bahwa tidak ada data baru yang akan ditambahkan ke file.

Contoh yang Lebih Panjang

Jika Anda bingung dengan contoh sebelumnya, mari kita ikuti proses membuat database baru, menambahkan file data baru, lalu mengosongkannya, lalu menghapusnya.

Membuat Database dan Melihat Informasi File Datanya

-- Switch to the master database
USE master;
GO

-- Create a new database
CREATE DATABASE Test;
GO

-- View it's data file and log file info
USE Test;  
GO  
SELECT file_id, name, type_desc, physical_name, size, max_size  
FROM sys.database_files ;  
GO

Pertama kita beralih ke database master sebelum membuat database baru bernama Test . Kami kemudian beralih ke database baru dan memilih info tertentu tentang file database dari sys.database_files tampilan katalog sistem.

Tambahkan File Data Baru

-- Add a new data file
ALTER DATABASE Test   
ADD FILE (  
    NAME = Test2,  
    FILENAME = '/var/opt/mssql/data/Test2.mdf',  
    SIZE = 8MB
    );  
GO

-- View it's data file and log file info
USE Test;  
GO  
SELECT file_id, name, type_desc, physical_name, size, max_size  
FROM sys.database_files ;  
GO

Kami sekarang menambahkan file data baru dengan nama logis Test2 dan jalur fisik /var/opt/mssql/data/Test2.mdf (perhatikan bahwa ini adalah jalur Linux/Mac. Jika menggunakan Windows, gunakan garis miring terbalik alih-alih garis miring ke depan). Sekali lagi kami menanyakan sys.database_files tampilan katalog sistem sehingga kami dapat melihat detail file baru kami.

Kosongkan File Data dan Hapus

Untuk keperluan contoh ini, mari kita asumsikan bahwa database telah dimasukkan ke dalam produksi dan file data yang baru saja kita buat telah dimuat dengan data. Sekarang kami ingin menghapus file itu (untuk alasan apa pun). Namun sebelum kita menghapus file tersebut, kita perlu mengosongkannya (memigrasikan datanya ke file lain).

Berikut cara melakukannya:

-- Empty the new data file
DBCC SHRINKFILE (Test2, EMPTYFILE);  
GO

-- Remove the file
ALTER DATABASE Test  
REMOVE FILE Test2;  
GO 

-- View it's data file and log file info
USE Test;  
GO  
SELECT file_id, name, type_desc, physical_name, size, max_size  
FROM sys.database_files ;  
GO

Jadi ini seperti contoh pertama di halaman ini, kecuali database kami memiliki nama yang berbeda. Dan dalam contoh ini, kami meminta sys.database_files untuk mengonfirmasi bahwa file tersebut memang telah dihapus.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan sys.trigger_event_types untuk Mencantumkan Jenis Peristiwa Pemicu di SQL Server

  2. Cara Menganalisis Aktivitas Satu Database di SQL Server

  3. Menggunakan PIVOT di SQL Server 2008

  4. Apa itu SQL Operations Studio (SQLOPS)?

  5. daftar yang dipisahkan koma sebagai string tunggal, T-SQL