Trong SQL Server, bạn có thể sử dụng FILEPROPERTY()
hàm để trả về giá trị thuộc tính cho một tệp cơ sở dữ liệu được chỉ định. Giá trị trả về là 1 hoặc 0 (hoặc NULL nếu đầu vào không hợp lệ).
Để sử dụng nó, hãy cung cấp tên tệp logic của tệp và giá trị thuộc tính mà bạn muốn trả về.
Ví dụ 1 - Truy vấn cơ bản
Đây là một ví dụ để chứng minh.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Kết quả:
+----------+ | Result | |----------| | 1152 | +----------+
Giá trị được trả về bởi SpaceUsed
thuộc tính là số trang được phân bổ trong tệp. Do đó, ví dụ này cho chúng ta biết rằng tệp WWI_Primary có 1152 trang được phân bổ.
Nếu tôi kiểm tra tệp nhật ký, tôi nhận được một kết quả khác:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Kết quả:
+----------+ | Result | |----------| | 14762 | +----------+
Ví dụ 2 - Lấy Tên của Tệp từ ID của nó
Nếu bạn không chắc về tên tệp, nhưng bạn biết ID của nó, bạn có thể sử dụng FILE_NAME()
chức năng trả về tên của tệp dựa trên ID của nó.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Kết quả:
+----------+ | Result | |----------| | 52872 | +----------+
Đây là một lần nữa với tên tệp cũng được trả về:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Kết quả:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Ví dụ 3 - Trả lại Tất cả Giá trị Thuộc tính
Tại thời điểm viết bài, FILEPROPERTY()
chấp nhận bốn giá trị thuộc tính.
Dưới đây là một ví dụ trả về tất cả bốn giá trị thuộc tính cho WWI_Log
tệp.
DECLARE @file_name varchar(50) = 'WWI_Log'; SELECT FILEPROPERTY(@file_name, 'IsReadOnly') AS IsReadOnly, FILEPROPERTY(@file_name, 'IsPrimaryFile') AS IsPrimaryFile, FILEPROPERTY(@file_name, 'IsLogFile') AS IsLogFile, FILEPROPERTY(@file_name, 'SpaceUsed') AS SpaceUsed;
Kết quả:
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
Ví dụ 4 - Tệp không tồn tại
Đây là những gì sẽ xảy ra nếu bạn chỉ định một tệp không tồn tại.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Kết quả:
+----------+ | Result | |----------| | NULL | +----------+
Ví dụ 5 - Giá trị thuộc tính không hợp lệ
Chúng tôi nhận được cùng một kết quả khi tệp chính xác, nhưng chúng tôi chỉ định một giá trị thuộc tính không hợp lệ.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Kết quả:
+----------+ | Result | |----------| | NULL | +----------+