Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách sử dụng FILEPROPERTY () trong SQL Server

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     |
+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lọc trên mệnh đề đầu ra sql

  2. Kiểm tra xem bảng có tồn tại hay không và nếu bảng không tồn tại, hãy tạo bảng trong SQL Server 2008

  3. Cách Dừng / Khởi động Hàng đợi Thư Cơ sở dữ liệu trong SQL Server (T-SQL)

  4. Cách chia giá trị được phân tách bằng dấu phẩy thành các cột

  5. MONTH () Ví dụ trong SQL Server (T-SQL)