Trong SQL Server, khi sử dụng Transact-SQL, việc giảm kích thước tệp dữ liệu yêu cầu một cú pháp khác để tăng nó. Để giảm kích thước tệp bằng T-SQL, hãy sử dụng DBCC SHRINKFILE
và cung cấp tên của tệp dữ liệu cùng với kích thước bạn muốn giảm xuống.
Dưới đây là các ví dụ về cách giảm kích thước tệp của tệp dữ liệu trong SQL Server bằng T-SQL.
Ví dụ cơ bản
Dưới đây là ví dụ cơ bản về việc giảm kích thước tệp dữ liệu bằng T-SQL:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2, 5); GO
Điều này có lẽ khá dễ hiểu. Đầu tiên, chúng tôi chuyển sang cơ sở dữ liệu có tệp dữ liệu mà chúng tôi muốn thay đổi. Sau đó, chúng tôi sử dụng DBCC SHRINKFILE
để chỉ định tệp dữ liệu nào và kích thước tệp cần giảm xuống. Đây là MB, vì vậy ví dụ của chúng tôi sẽ giảm nó xuống còn 5MB.
Giảm nó xuống Kích thước tệp mặc định
Nếu bạn không chỉ định kích thước tệp, tệp sẽ bị giảm xuống kích thước mặc định. Kích thước mặc định là kích thước được chỉ định khi tệp được tạo.
Ví dụ:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2); GO
Cắt bớt tệp dữ liệu
Bạn có thể cắt bớt tệp dữ liệu bằng cách sử dụng TRUNCATEONLY
đối số.
Đây là một ví dụ:
USE Solutions; GO DBCC SHRINKFILE ('Solutions', TRUNCATEONLY); GO
Làm trống tệp dữ liệu
Bạn cũng có thể làm trống tệp dữ liệu bằng cách sử dụng EMPTYFILE
đối số.
Ví dụ:
DBCC SHRINKFILE (Solutions2, EMPTYFILE); GO
Điều này sẽ di chuyển tất cả dữ liệu từ tệp được chỉ định sang các tệp khác trong cùng một nhóm tệp. Do đó, bạn cần đảm bảo rằng đây không phải là tệp duy nhất trong nhóm tệp (nếu không, bạn sẽ gặp lỗi). EmptyFile cũng đảm bảo với bạn rằng sẽ không có dữ liệu mới nào được thêm vào tệp.
Sau khi xóa sạch tệp, bạn có thể xóa tệp đó nếu đó là điều bạn muốn làm. Dưới đây là một ví dụ về cách xóa tệp đã làm trống:
ALTER DATABASE Solutions REMOVE FILE Solutions2; GO
Và chúng tôi có thể kiểm tra xem nó đã bị xóa hay chưa bằng cách chạy như sau:
USE Solutions; GO SELECT file_id, name, type_desc, physical_name, size, max_size FROM sys.database_files ; GO