Tạo cú pháp cơ sở dữ liệu cho SQL Server, Azure SQL Database, Azure Synapse Analytics và Hệ thống nền tảng Analytics

Bạn đang xem: lệnh sql để tạo cơ sở dữ liệu

Phản hồi sẽ được gửi tới Microsoft: Bằng cách nhấn nút gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Chính sách bảo mật.

Tạo cơ sở dữ liệu mới.

Chọn một trong các tab sau cho cú pháp, đối số, nhận xét, quyền và ví dụ cho một phiên bản SQL cụ thể mà bạn đang làm việc .

Trong hàng tiếp theo, hãy chọn tên sản phẩm bạn quan tâm và chỉ thông tin của sản phẩm đó mới được hiển thị.

Máy chủ SQL

Tổng quan

Trong SQL Server, câu lệnh này tạo cơ sở dữ liệu mới và các tệp được sử dụng và nhóm tệp của chúng. Nó cũng có thể được sử dụng để tạo ảnh chụp nhanh cơ sở dữ liệu hoặc đính kèm tệp cơ sở dữ liệu để tạo cơ sở dữ liệu từ các tệp tách rời của cơ sở dữ liệu khác.

Cú pháp

Tạo cơ sở dữ liệu.

Để biết thêm thông tin về các quy ước cú pháp, hãy xem Quy ước về cú pháp Transact-SQL .

  TẠO CƠ SỞ DỮ LIỆU database_name
[CONTAINMENT = {KHÔNG | PHẦN}]
[ TRÊN
      [CHÍNH] & lt; filespec & gt; [ ,...N ]
      [, & lt; nhóm tệp & gt; [ ,...N ] ]
      [ĐĂNG NHẬP & lt; filespec & gt; [ ,...N ] ]
]
[COLLATE collation_name]
[VỚI & lt; tùy chọn & gt; [,...N ] ]
[;]

& lt; tùy chọn & gt; :: =
{
      FILESTREAM (& lt; filestream_option & gt; [, ... n])
    | DEFAULT_FULLTEXT_LANGUAGE = {lcid | tên_ngôn ngữ | language_alias}
    | DEFAULT_LANGUAGE = {lcid | tên_ngôn ngữ | language_alias}
    | NESTED_TRIGGERS = {TẮT | TRÊN }
    | TRANSFORM_NOISE_WORDS = {TẮT | TRÊN}
    | TWO_DIGIT_YEAR_CUTOFF = & lt; hai_digit_year_cutoff & gt;
    | DB_CHAINING {TẮT | TRÊN }
    | TRUSTWORTHY {TẮT | TRÊN }
    | PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = '& lt; Đường dẫn tệp đến thư mục trên ổ đĩa có định dạng DAX & gt;')
}

& lt; filestream_option & gt; :: =
{
      NON_TRANSACTED_ACCESS = {TẮT | READ_ONLY | ĐẦY }
    | DIRECTORY_NAME = 'directory_name'
}

& lt; filespec & gt; :: =
{
(
    NAME = logic_file_name,
    FILENAME = {'os_file_name' | 'filestream_path'}
    [, SIZE = kích thước [KB | MB | GB | TB]]
    [, MAXSIZE = {max_size [KB | MB | GB | TB] | VÔ HẠN } ]
    [, FILEGROWTH = growth_increment [KB | MB | GB | Lao | %]]
)
}

& lt; nhóm tệp & gt; :: =
{
Tên nhóm tệp FILEGROUP [[CONTAINS FILESTREAM] [DEFAULT] | CONTAINS MEMORY_OPTIMIZED_DATA]
    & lt; filespec & gt; [ ,...N ]
}
 

Đính kèm cơ sở dữ liệu

  TẠO CƠ SỞ DỮ LIỆU database_name
    BẬT & lt; filespec & gt; [ ,...N ]
    ĐỐI VỚI {{ATTACH [VỚI & lt; đính kèm_database_option & gt; [ , ...N ] ] }
        | ATTACH_REBUILD_LOG}
[;]

& lt; attachment_database_option & gt; :: =
{
      & lt; service_broker_option & gt;
    | RESTRICTED_USER
    | FILESTREAM (DIRECTORY_NAME = {'directory_name' | NULL})
}

& lt; service_broker_option & gt; :: =
{
    ENABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
}
 

Tạo ảnh chụp nhanh cơ sở dữ liệu

  TẠO CƠ SỞ DỮ LIỆU cơ sở dữ liệu_snapshot_name
    TRÊN
    (
        NAME = logic_file_name,
        FILENAME = 'os_file_name'
    ) [ ,...N ]
    NHƯ SNAPSHOT CỦA
[;]
 

Đối số

database_name

Đây là tên của cơ sở dữ liệu mới. Tên cơ sở dữ liệu phải là duy nhất trong một phiên bản của SQL Server và tuân thủ các quy tắc về mã định danh .

database_name có thể có tối đa 128 ký tự, trừ khi tên logic không được chỉ định cho tệp nhật ký. Nếu tên tệp nhật ký logic không được chỉ định, SQL Server sẽ tạo tên_tệp_ logic và tên_tệp_ os_file cho nhật ký bằng cách thêm một hậu tố vào database_name. Điều này giới hạn database_name ở 123 ký tự để tên tệp logic được tạo không quá 128 ký tự.

Nếu tên tệp dữ liệu không được chỉ định, SQL Server sử dụng database_name làm cả tên_tệp_ lôgic và tên_tệp os. Đường dẫn mặc định được lấy từ sổ đăng ký. Có thể thay đổi đường dẫn mặc định trong Thuộc tính máy chủ (Trang cài đặt cơ sở dữ liệu) trong Management Studio. Thay đổi đường dẫn mặc định yêu cầu khởi động lại SQL Server.

CONTAINMENT = {KHÔNG | PARTIAL}

Áp dụng cho : SQL Server 2012 (11.x) trở lên

Chỉ định trạng thái chứa của cơ sở dữ liệu. NONE = cơ sở dữ liệu không chứa. PARTIAL = cơ sở dữ liệu chứa một phần.

BẬT

Chỉ định rằng các tệp đĩa được sử dụng để lưu trữ các phần dữ liệu của cơ sở dữ liệu, tệp dữ liệu, được xác định rõ ràng. Bắt buộc phải BẬT khi theo sau là danh sách & lt; filespec & gt; được phân tách bằng dấu phẩy; các mục xác định tệp dữ liệu cho nhóm tệp chính. Danh sách tệp trong nhóm tệp chính có thể được theo sau bởi danh sách tùy chọn, được phân tách bằng dấu phẩy gồm & lt; nhóm tệp & gt; các mục xác định nhóm tệp của người dùng và tệp của họ.

CHÍNH

Chỉ định rằng & lt; filespec & gt; danh sách xác định tệp chính. Tệp đầu tiên được chỉ định trong & lt; filespec & gt; mục nhập trong nhóm tệp chính trở thành tệp chính. Một cơ sở dữ liệu chỉ có thể có một tệp chính. Để biết thêm thông tin, hãy xem Tệp cơ sở dữ liệu và nhóm tệp .

Nếu PRIMARY không được chỉ định, tệp đầu tiên được liệt kê trong câu lệnh TẠO CƠ SỞ DỮ LIỆU sẽ trở thành tệp chính.

BẬT ĐĂNG NHẬP

Chỉ định rằng các tệp đĩa được sử dụng để lưu trữ nhật ký cơ sở dữ liệu, tệp nhật ký, được xác định rõ ràng. ĐĂNG NHẬP theo sau là danh sách & lt; filespec & gt; được phân tách bằng dấu phẩy; các mục xác định tệp nhật ký. Nếu LOG ​​ON không được chỉ định, một tệp nhật ký sẽ tự động được tạo, có kích thước bằng 25 phần trăm tổng kích thước của tất cả các tệp dữ liệu cho cơ sở dữ liệu hoặc 512 KB, tùy theo kích thước nào lớn hơn. Tệp này được đặt ở vị trí tệp nhật ký mặc định. Để biết thông tin về vị trí này, hãy xem Xem hoặc thay đổi vị trí mặc định cho dữ liệu và tệp nhật ký trong SSMS .

Không thể chỉ định BẬT ĐĂNG NHẬP trên ảnh chụp nhanh cơ sở dữ liệu.

COLLATE collation_name

Chỉ định đối chiếu mặc định cho cơ sở dữ liệu. Tên đối chiếu có thể là tên đối chiếu Windows hoặc tên đối chiếu SQL. Nếu không được chỉ định, cơ sở dữ liệu được chỉ định đối chiếu mặc định của phiên bản SQL Server. Không thể chỉ định tên đối chiếu trên ảnh chụp nhanh cơ sở dữ liệu.

Không thể chỉ định tên đối chiếu bằng mệnh đề FOR ​​ATTACH hoặc FOR ATTACH_REBUILD_LOG. Để biết thông tin về cách thay đổi đối chiếu của cơ sở dữ liệu đính kèm, hãy truy cập Trang web này của Microsoft .

Để biết thêm thông tin về tên đối chiếu Windows và SQL, hãy xem COLLATE .

Lưu ý

Cơ sở dữ liệu chứa được đối chiếu khác với cơ sở dữ liệu không chứa. Để biết thêm thông tin, hãy xem Đối chiếu cơ sở dữ liệu có chứa .

VỚI & lt; option & gt;

& lt; filestream_option & gt;

NON_TRANSACTED_ACCESS = { TẮT | READ_ONLY | ĐẦY ĐỦ}

Áp dụng cho : SQL Server 2012 (11.x) trở lên.

Chỉ định mức độ truy cập FILESTREAM không giao dịch vào cơ sở dữ liệu.

Giá trị
Sự miêu tả

TẮT
Quyền truy cập phi giao dịch bị vô hiệu hóa.

CHỈ ĐỌC
Dữ liệu FILESTREAM trong cơ sở dữ liệu này có thể được đọc bởi các quy trình không phải giao dịch.

ĐẦY
Quyền truy cập đầy đủ không phải giao dịch vào FILESTREAM FileTables được bật.

DIRECTORY_NAME = & lt; directory_name & gt;

Áp dụng cho : SQL Server 2012 (11.x) trở lên

Tên thư mục tương thích với windows. Tên này phải là duy nhất trong số tất cả các tên Database_Directory trong phiên bản SQL Server. So sánh tính duy nhất không phân biệt chữ hoa chữ thường, bất kể cài đặt đối chiếu SQL Server. Tùy chọn này phải được đặt trước khi bạn tạo FileTable trong cơ sở dữ liệu này.

Các tùy chọn sau chỉ được phép khi CONTAINMENT đã được đặt thành PARTIAL. Nếu CONTAINMENT được đặt thành KHÔNG, lỗi sẽ xảy ra.

DEFAULT_FULLTEXT_LANGUAGE = & lt; lcid & gt; | & lt; tên ngôn ngữ & gt; | & lt; bí danh ngôn ngữ & gt;

Áp dụng cho : SQL Server 2012 (11.x) trở lên

Xem Định cấu hình Tùy chọn cấu hình máy chủ ngôn ngữ toàn văn mặc định để biết mô tả đầy đủ về tùy chọn này.

DEFAULT_LANGUAGE = & lt; lcid & gt; | & lt; tên ngôn ngữ & gt; | & lt; bí danh ngôn ngữ & gt;

Áp dụng cho : SQL Server 2012 (11.x) trở lên

Xem phần Định cấu hình Tùy chọn cấu hình máy chủ ngôn ngữ mặc định để biết mô tả đầy đủ về tùy chọn này.

NESTED_TRIGGERS = {OFF | BẬT}

Áp dụng cho : SQL Server 2012 (11.x) trở lên

Xem Định cấu hình Tùy chọn cấu hình máy chủ trình kích hoạt lồng nhau để biết mô tả đầy đủ về tùy chọn này.

TRANSFORM_NOISE_WORDS = {OFF | BẬT}

Áp dụng cho : SQL Server 2012 (11.x) trở lên

Xem Chuyển đổi từ nhiễu Tùy chọn cấu hình máy chủ để biết mô tả đầy đủ về tùy chọn này.

TWO_DIGIT_YEAR_CUTOFF = {2049 | & lt; bất kỳ năm nào trong khoảng từ 1753 đến 9999 & gt; }

Bốn chữ số đại diện cho một năm. 2049 là giá trị mặc định. Xem Định cấu hình Tùy chọn cấu hình máy chủ giới hạn năm hai chữ số để biết mô tả đầy đủ về tùy chọn này.

DB_CHAINING {OFF | BẬT}

Khi BẬT được chỉ định, cơ sở dữ liệu có thể là nguồn hoặc đích của chuỗi sở hữu cơ sở dữ liệu chéo.

Khi TẮT, cơ sở dữ liệu không thể tham gia vào chuỗi sở hữu cơ sở dữ liệu chéo. Mặc định là TẮT.

Quan trọng

Phiên bản của SQL Server sẽ nhận ra cài đặt này khi tùy chọn máy chủ chuỗi quyền sở hữu chéo db là 0 (TẮT). Khi chuỗi quyền sở hữu chéo là 1 (BẬT), tất cả cơ sở dữ liệu người dùng có thể tham gia vào chuỗi sở hữu cơ sở dữ liệu chéo, bất kể giá trị của tùy chọn này. Tùy chọn này được đặt bằng cách sử dụng sp_configure .

Để đặt tùy chọn này, yêu cầu thành viên trong vai trò máy chủ cố định sysadmin. Không thể đặt tùy chọn DB_CHAINING trên các cơ sở dữ liệu hệ thống sau: master , model , tempdb .

TRUSTWORTHY {OFF | BẬT}

Khi BẬT được chỉ định, các mô-đun cơ sở dữ liệu (ví dụ: dạng xem, chức năng do người dùng xác định hoặc thủ tục được lưu trữ) sử dụng ngữ cảnh mạo danh có thể truy cập tài nguyên bên ngoài cơ sở dữ liệu.

Khi TẮT, các mô-đun cơ sở dữ liệu trong ngữ cảnh mạo danh không thể truy cập tài nguyên bên ngoài cơ sở dữ liệu. Mặc định là TẮT.

TRUSTWORTHY được đặt thành TẮT bất cứ khi nào cơ sở dữ liệu được đính kèm.

Theo mặc định, tất cả cơ sở dữ liệu hệ thống ngoại trừ cơ sở dữ liệu msdb được đặt TRUSTWORTHY thành TẮT. Không thể thay đổi giá trị cho cơ sở dữ liệu model tempdb . Chúng tôi khuyên bạn không bao giờ đặt tùy chọn TRUSTWORTHY thành BẬT cho cơ sở dữ liệu master .

PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = ”)

Khi tùy chọn này được chỉ định, bộ đệm nhật ký giao dịch được tạo trên một ổ đĩa nằm trên thiết bị đĩa được hỗ trợ bởi Bộ nhớ lớp lưu trữ (bộ nhớ không bay hơi NVDIMM-N), còn được gọi là bộ đệm nhật ký liên tục. Để biết thêm thông tin, hãy xem Tăng tốc độ trễ Cam kết giao dịch sử dụng Bộ nhớ lớp lưu trữ . Áp dụng cho : SQL Server 2017 (14.x) và mới hơn.

TẠO CƠ SỞ DỮ LIỆU … CHO ATTACH [VỚI & lt; đính kèm_database_option & gt; ]

Chỉ định rằng cơ sở dữ liệu được tạo bằng cách đính kèm một bộ tệp hệ điều hành hiện có. Phải có & lt; filespec & gt; mục nhập chỉ định tệp chính. & Lt; filespec & gt; các mục nhập bắt buộc là các mục nhập cho bất kỳ tệp nào có đường dẫn khác với thời điểm cơ sở dữ liệu được tạo lần đầu hoặc được đính kèm lần cuối. Đ & lt; filespec & gt; mục nhập phải được chỉ định cho các tệp này.

FOR ATTACH yêu cầu những điều sau:

  • Tất cả các tệp dữ liệu (MDF và NDF) phải có sẵn.
  • Nếu tồn tại nhiều tệp nhật ký, tất cả chúng đều phải khả dụng.
Xem Thêm  Hướng dẫn về thẻ HTML để thêm hình ảnh vào tài liệu web của bạn » - thẻ html cho hình ảnh

Nếu cơ sở dữ liệu đọc / ghi có một tệp nhật ký duy nhất hiện không khả dụng và nếu cơ sở dữ liệu bị tắt mà không có người dùng hoặc giao dịch đang mở trước khi thực hiện thao tác đính kèm, FOR ATTACH sẽ tự động xây dựng lại tệp nhật ký và cập nhật tệp chính. Ngược lại, đối với cơ sở dữ liệu chỉ đọc, nhật ký không thể được tạo lại vì không thể cập nhật tệp chính. Do đó, khi bạn đính kèm cơ sở dữ liệu chỉ đọc với nhật ký không khả dụng, bạn phải cung cấp các tệp nhật ký hoặc các tệp trong mệnh đề FOR ​​ATTACH.

Lưu ý

Không thể đính kèm cơ sở dữ liệu được tạo bởi phiên bản SQL Server mới hơn trong các phiên bản cũ hơn.

Trong SQL Server, mọi tệp toàn văn là một phần của cơ sở dữ liệu đang được đính kèm sẽ được đính kèm với cơ sở dữ liệu. Để chỉ định đường dẫn mới của danh mục toàn văn, hãy chỉ định vị trí mới không có tên tệp hệ điều hành toàn văn. Để biết thêm thông tin, hãy xem phần Ví dụ.

Việc đính kèm cơ sở dữ liệu có chứa tùy chọn FILESTREAM của “Tên thư mục”, vào một phiên bản SQL Server sẽ nhắc SQL Server xác minh rằng tên Database_Directory là duy nhất. Nếu không, hoạt động đính kèm không thành công với lỗi, FILESTREAM Database_Directory name không phải là duy nhất trong phiên bản SQL Server này . Để tránh lỗi này, tham số tùy chọn, directory_name, phải được chuyển vào thao tác này.

FOR ATTACH không thể được chỉ định trên ảnh chụp nhanh cơ sở dữ liệu.

FOR ATTACH có thể chỉ định tùy chọn RESTRICTED_USER. RESTRICTED_USER chỉ cho phép các thành viên của vai trò cơ sở dữ liệu cố định db_owner và vai trò máy chủ cố định dbcreator và sysadmin kết nối với cơ sở dữ liệu, nhưng không giới hạn số lượng của chúng. Những nỗ lực của người dùng không đủ tiêu chuẩn bị từ chối.

& lt; service_broker_option & gt;

Nếu cơ sở dữ liệu sử dụng Service Broker, hãy sử dụng WITH & lt; service_broker_option & gt; trong điều khoản FOR ATTACH của bạn:

Kiểm soát việc gửi thư của Nhà môi giới dịch vụ và số nhận dạng Nhà môi giới dịch vụ cho cơ sở dữ liệu. Tùy chọn Service Broker chỉ có thể được chỉ định khi điều khoản FOR ATTACH được sử dụng.

ENABLE_BROKER

Chỉ định rằng Nhà môi giới dịch vụ được bật cho cơ sở dữ liệu được chỉ định. Tức là, quá trình gửi thư được bắt đầu và is_broker_enabled được đặt thành true trong chế độ xem danh mục sys.databases . Cơ sở dữ liệu giữ lại mã định danh Nhà môi giới dịch vụ hiện có.

NEW_BROKER

Tạo giá trị service_broker_guid mới trong cả sys.databases và cơ sở dữ liệu đã khôi phục. Kết thúc tất cả các điểm cuối của cuộc trò chuyện bằng tính năng dọn dẹp. Người môi giới được bật, nhưng không có tin nhắn nào được gửi đến các điểm cuối hội thoại từ xa. Bất kỳ tuyến nào tham chiếu đến số nhận dạng Nhà môi giới dịch vụ cũ phải được tạo lại bằng số nhận dạng mới.

ERROR_BROKER_CONVERSATIONS

Kết thúc tất cả các cuộc hội thoại bằng lỗi cho biết rằng cơ sở dữ liệu đã được đính kèm hoặc khôi phục. Nhà môi giới bị vô hiệu hóa cho đến khi hoạt động này hoàn thành và sau đó được kích hoạt. Cơ sở dữ liệu giữ lại mã định danh Nhà môi giới dịch vụ hiện có.

Khi bạn đính kèm một cơ sở dữ liệu nhân bản đã được sao chép thay vì bị tách rời, hãy xem xét những điều sau:

  • Nếu bạn đính kèm cơ sở dữ liệu vào phiên bản và phiên bản máy chủ giống với cơ sở dữ liệu gốc thì không cần thực hiện thêm bước nào.
  • Nếu bạn đính kèm cơ sở dữ liệu vào cùng một phiên bản máy chủ nhưng có phiên bản nâng cấp, bạn phải thực thi sp_vupgrade_replication để nâng cấp bản sao sau khi hoạt động đính kèm hoàn tất.
  • Nếu bạn đính kèm cơ sở dữ liệu vào một phiên bản máy chủ khác, bất kể phiên bản nào, bạn phải thực thi sp_removedbreplication để xóa bản sao sau khi hoạt động đính kèm hoàn tất.

Lưu ý

Attach hoạt động với định dạng lưu trữ vardecimal , nhưng SQL Server Database Engine phải được nâng cấp ít nhất lên SQL Server 2005 (9.x) SP2. Bạn không thể đính kèm cơ sở dữ liệu sử dụng định dạng lưu trữ thập phân vào phiên bản SQL Server cũ hơn. Để biết thêm thông tin về định dạng lưu trữ vardecimal , hãy xem Nén dữ liệu .

Khi cơ sở dữ liệu lần đầu tiên được đính kèm hoặc khôi phục vào phiên bản SQL Server mới, bản sao của khóa chính cơ sở dữ liệu (được mã hóa bằng khóa chính của dịch vụ) chưa được lưu trữ trong máy chủ. Bạn phải sử dụng câu lệnh OPEN MASTER KEY để giải mã khóa chính của cơ sở dữ liệu (DMK). Sau khi DMK đã được giải mã, bạn có tùy chọn bật giải mã tự động trong tương lai bằng cách sử dụng câu lệnh ALTER MASTER KEY REGENERATE để cung cấp cho máy chủ bản sao của DMK, được mã hóa bằng khóa chính của dịch vụ (SMK). Khi cơ sở dữ liệu đã được nâng cấp từ phiên bản cũ hơn, DMK sẽ được tạo lại để sử dụng thuật toán AES mới hơn. Để biết thêm thông tin về cách tạo lại DMK, hãy xem ALTER MASTER KEY . Thời gian cần thiết để tạo lại khóa DMK để nâng cấp lên AES phụ thuộc vào số lượng đối tượng được DMK bảo vệ. Việc tạo lại khóa DMK để nâng cấp lên AES chỉ cần thiết một lần và không ảnh hưởng đến việc tái tạo trong tương lai như một phần của chiến lược xoay vòng khóa. Để biết thông tin về cách nâng cấp cơ sở dữ liệu bằng cách sử dụng tệp đính kèm, hãy xem Nâng cấp cơ sở dữ liệu bằng cách sử dụng tách và đính kèm .

Quan trọng

Chúng tôi khuyên bạn không nên đính kèm cơ sở dữ liệu từ các nguồn không xác định hoặc không đáng tin cậy. Những cơ sở dữ liệu như vậy có thể chứa mã độc hại có thể thực thi mã Transact-SQL ngoài ý muốn hoặc gây ra lỗi bằng cách sửa đổi lược đồ hoặc cấu trúc cơ sở dữ liệu vật lý. Trước khi bạn sử dụng cơ sở dữ liệu từ một nguồn không xác định hoặc không đáng tin cậy, hãy chạy DBCC CHECKDB trên cơ sở dữ liệu trên máy chủ phi sản xuất, đồng thời kiểm tra mã, chẳng hạn như các thủ tục được lưu trữ hoặc mã do người dùng xác định khác, trong cơ sở dữ liệu .

Lưu ý

Các tùy chọn TRUSTWORTHY DB_CHAINING không có tác dụng khi đính kèm cơ sở dữ liệu.

CHO ATTACH_REBUILD_LOG

Chỉ định rằng cơ sở dữ liệu được tạo bằng cách đính kèm tập hợp các tệp hệ điều hành hiện có. Tùy chọn này được giới hạn cho cơ sở dữ liệu đọc / ghi. Phải có & lt; filespec & gt; mục nhập chỉ định tệp chính. Nếu thiếu một hoặc nhiều tệp nhật ký giao dịch, tệp nhật ký sẽ được tạo lại. ATTACH_REBUILD_LOG tự động tạo tệp nhật ký mới, 1 MB. Tệp này được đặt ở vị trí tệp nhật ký mặc định. Để biết thông tin về vị trí này, hãy xem Xem hoặc thay đổi vị trí mặc định cho dữ liệu và tệp nhật ký trong SSMS .

Lưu ý

Nếu các tệp nhật ký có sẵn, Công cụ Cơ sở dữ liệu sẽ sử dụng các tệp đó thay vì xây dựng lại các tệp nhật ký.

FOR ATTACH_REBUILD_LOG yêu cầu các điều kiện sau:

  • Cơ sở dữ liệu đã tắt hoàn toàn.
  • Tất cả các tệp dữ liệu (MDF và NDF) phải có sẵn.

Quan trọng

Thao tác này phá vỡ chuỗi sao lưu nhật ký. Chúng tôi khuyên bạn nên thực hiện sao lưu toàn bộ cơ sở dữ liệu sau khi hoạt động hoàn tất. Để biết thêm thông tin, hãy xem DỰ PHÒNG .

Thông thường, FOR ATTACH_REBUILD_LOG được sử dụng khi bạn sao chép cơ sở dữ liệu đọc / ghi với một bản ghi lớn sang một máy chủ khác, nơi bản sao sẽ được sử dụng chủ yếu hoặc chỉ cho các thao tác đọc và do đó yêu cầu ít dung lượng nhật ký hơn cơ sở dữ liệu gốc.

Không thể chỉ định FOR ATTACH_REBUILD_LOG trên ảnh chụp nhanh cơ sở dữ liệu.

Để biết thêm thông tin về cách đính kèm và tách cơ sở dữ liệu, hãy xem Tách và Đính kèm Cơ sở dữ liệu .

& lt; filespec & gt;

Kiểm soát các thuộc tính của tệp.

NAME logic_file_name

Chỉ định tên logic cho tệp. NAME là bắt buộc khi FILENAME được chỉ định, ngoại trừ khi chỉ định một trong các mệnh đề FOR ​​ATTACH. Không thể đặt tên nhóm tệp FILESTREAM là CHÍNH.

logic_file_name
Là tên logic được sử dụng trong SQL Server khi tham chiếu đến tệp. Logical_file_name phải là duy nhất trong cơ sở dữ liệu và tuân thủ các quy tắc dành cho mã định danh . Tên có thể là một ký tự hoặc hằng số Unicode, hoặc một số nhận dạng thông thường hoặc được phân tách.

FILENAME { os_file_name | filestream_path }

Chỉ định tên tệp (vật lý) của hệ điều hành.

os_file_name
Là đường dẫn và tên tệp được hệ điều hành sử dụng khi bạn tạo tệp. Tệp phải nằm trên một trong các thiết bị sau: máy chủ cục bộ mà SQL Server được cài đặt, Mạng vùng lưu trữ [SAN] hoặc mạng dựa trên iSCSI. Đường dẫn được chỉ định phải tồn tại trước khi thực hiện câu lệnh CREATE DATABASE. Để biết thêm thông tin, hãy xem Tệp cơ sở dữ liệu và nhóm tệp ở phần sau của bài viết này.

Các thông số SIZE, MAXSIZE và FILEGROWTH có thể được đặt khi đường dẫn UNC được chỉ định cho tệp.

Nếu tệp nằm trên phân vùng thô, os_file_name chỉ phải chỉ định ký tự ổ đĩa của phân vùng thô hiện có. Chỉ có thể tạo một tệp dữ liệu trên mỗi phân vùng thô.

Không nên đặt tệp dữ liệu vào hệ thống tệp nén trừ khi tệp là tệp phụ chỉ đọc hoặc cơ sở dữ liệu ở chế độ chỉ đọc. Không bao giờ được đặt tệp nhật ký vào hệ thống tệp nén.

filestream_path
Đối với nhóm tệp FILESTREAM, FILENAME đề cập đến một đường dẫn nơi dữ liệu FILESTREAM sẽ được lưu trữ. Đường dẫn đến thư mục cuối cùng phải tồn tại và thư mục cuối cùng không được tồn tại. Ví dụ: nếu bạn chỉ định đường dẫn C: \ MyFiles \ MyFilestreamData , thì C: \ MyFiles phải tồn tại trước khi bạn chạy ALTER DATABASE, nhưng phải có mã MyFilestreamData thư mục không được tồn tại.

Nhóm tệp và tệp ( & lt; filespec & gt; ) phải được tạo trong cùng một câu lệnh.

Các thuộc tính SIZE và FILEGROWTH không áp dụng cho nhóm tệp FILESTREAM.

Kích thước KÍCH THƯỚC

Chỉ định kích thước của tệp.

Không thể chỉ định SIZE khi os_file_name được chỉ định làm đường dẫn UNC. SIZE không áp dụng cho nhóm tệp FILESTREAM.

kích thước
Là kích thước ban đầu của tệp.

Khi kích thước không được cung cấp cho tệp chính, Công cụ cơ sở dữ liệu sẽ sử dụng kích thước của tệp chính trong cơ sở dữ liệu model . Kích thước mặc định của cơ sở dữ liệu model là 8 MB (bắt đầu với SQL Server 2016 (13.x)) hoặc 1 MB (đối với các phiên bản cũ hơn). Khi tệp dữ liệu thứ cấp hoặc tệp nhật ký được chỉ định, nhưng kích thước không được chỉ định cho tệp, Công cụ cơ sở dữ liệu tạo tệp 8 MB (bắt đầu bằng SQL Server 2016 (13.x)) hoặc 1 MB (đối với các phiên bản trước đó). Kích thước được chỉ định cho tệp chính ít nhất phải lớn bằng tệp chính của cơ sở dữ liệu model .

Có thể sử dụng các hậu tố kilobyte (KB), megabyte (MB), gigabyte (GB) hoặc terabyte (TB). Giá trị mặc định là MB. Chỉ định một số nguyên. Không bao gồm một số thập phân. Kích thước là một giá trị số nguyên. Đối với các giá trị lớn hơn 2147483647, hãy sử dụng các đơn vị lớn hơn.

MAXSIZE max_size

Chỉ định kích thước tối đa mà tệp có thể phát triển. Không thể chỉ định MAXSIZE khi os_file_name được chỉ định làm đường dẫn UNC.

max_size
Là kích thước tệp tối đa. Các hậu tố KB, MB, GB và TB có thể được sử dụng. Giá trị mặc định là MB. Chỉ định một số nguyên. Không bao gồm một số thập phân. Nếu max_size không được chỉ định, tệp sẽ phát triển cho đến khi đĩa đầy. Max_size là một giá trị số nguyên. Đối với các giá trị lớn hơn 2147483647, hãy sử dụng các đơn vị lớn hơn.

KHÔNG GIỚI HẠN
Chỉ định rằng tệp sẽ phát triển cho đến khi đĩa đầy. Trong SQL Server, tệp nhật ký được chỉ định tăng trưởng không giới hạn có kích thước tối đa là 2 TB và tệp dữ liệu có kích thước tối đa là 16 TB.

Lưu ý

Không có kích thước tối đa khi tùy chọn này được chỉ định cho vùng chứa FILESTREAM. Nó tiếp tục phát triển cho đến khi đĩa đầy.

FILEGROWTH growth_increment

Chỉ định mức tăng trưởng tự động của tệp. Cài đặt FILEGROWTH cho tệp không được vượt quá cài đặt MAXSIZE. Không thể chỉ định FILEGROWTH khi tên_tệp os_file được chỉ định làm đường dẫn UNC. FILEGROWTH không áp dụng cho nhóm tệp FILESTREAM.

growth_increment
Là lượng dung lượng được thêm vào tệp mỗi khi cần dung lượng mới.

Giá trị có thể được chỉ định bằng MB, KB, GB, TB hoặc phần trăm (%). Nếu một số được chỉ định mà không có hậu tố MB, KB hoặc%, thì giá trị mặc định là MB. Khi% được chỉ định, kích thước tăng trưởng là tỷ lệ phần trăm kích thước được chỉ định của tệp tại thời điểm gia tăng xảy ra. Kích thước đã chỉ định được làm tròn đến 64 KB gần nhất và giá trị nhỏ nhất là 64 KB.

Giá trị 0 cho biết rằng tính năng tăng trưởng tự động đã tắt và không được phép có thêm dung lượng.

Nếu FILEGROWTH không được chỉ định, các giá trị mặc định là:

Phiên bản
Giá trị mặc định

Bắt đầu SQL Server 2016 (13.x)
Dữ liệu 64 MB. Tệp nhật ký 64 MB.

Bắt đầu SQL Server 2005 (9.x)
Dữ liệu 1 MB. Ghi nhật ký tệp 10%.

Trước SQL Server 2005 (9.x)
Dữ liệu 10%. Ghi nhật ký tệp 10%.

& lt; nhóm tệp & gt;

Kiểm soát các thuộc tính nhóm tệp. Không thể chỉ định nhóm tệp trên ảnh chụp nhanh cơ sở dữ liệu.

FILEGROUP filegroup_name

Là tên hợp lý của nhóm tệp.

filegroup_name
filegroup_name phải là duy nhất trong cơ sở dữ liệu và không được là tên do hệ thống cung cấp PRIMARY và PRIMARY_LOG. Tên có thể là một ký tự hoặc hằng số Unicode, hoặc một số nhận dạng thông thường hoặc được phân tách. Tên phải tuân thủ các quy tắc về giá trị nhận dạng .

CHỨA FILESTREAM
Chỉ định rằng nhóm tệp lưu trữ các đối tượng lớn nhị phân FILESTREAM (BLOB) trong hệ thống tệp.

DEFAULT
Chỉ định nhóm tệp được đặt tên là nhóm tệp mặc định trong cơ sở dữ liệu.

CONTAINS MEMORY_OPTIMIZED_DATA
Áp dụng cho : SQL Server 2014 (12.x) trở lên

Chỉ định rằng nhóm tệp lưu trữ dữ liệu memory_optimized trong hệ thống tệp. Để biết thêm thông tin, hãy xem Tổng quan về tối ưu hóa trong bộ nhớ và các tình huống sử dụng . Chỉ cho phép một nhóm tệp MEMORY_OPTIMIZED_DATA trên mỗi cơ sở dữ liệu. Đối với các mẫu mã tạo nhóm tệp để lưu trữ dữ liệu được tối ưu hóa cho bộ nhớ, hãy xem Tạo bảng được tối ưu hóa bộ nhớ và quy trình được lưu trữ được biên dịch theo kiểu Native .

database_snapshot_name

Là tên của ảnh chụp nhanh cơ sở dữ liệu mới. Tên ảnh chụp nhanh cơ sở dữ liệu phải là duy nhất trong một phiên bản của SQL Server và tuân thủ các quy tắc cho số nhận dạng. database_snapshot_name có thể có tối đa 128 ký tự.

ON ( NAME = logic_file_name , FILENAME = ' os_file_name ') [, ... n]

Để tạo ảnh chụp nhanh cơ sở dữ liệu, hãy chỉ định danh sách các tệp trong cơ sở dữ liệu nguồn. Để ảnh chụp nhanh hoạt động, tất cả các tệp dữ liệu phải được chỉ định riêng lẻ. Tuy nhiên, tệp nhật ký không được phép cho ảnh chụp nhanh cơ sở dữ liệu. Các nhóm tệp FILESTREAM không được ảnh chụp nhanh cơ sở dữ liệu hỗ trợ. Nếu tệp dữ liệu FILESTREAM được bao gồm trong mệnh đề TẠO CƠ SỞ DỮ LIỆU BẬT, câu lệnh sẽ không thành công và lỗi sẽ xuất hiện.

Để biết mô tả về NAME và FILENAME cũng như giá trị của chúng, hãy xem mô tả của & lt; filespec & gt; giá trị.

Lưu ý

Khi bạn tạo ảnh chụp nhanh cơ sở dữ liệu, & lt; filespec & gt; các tùy chọn và từ khóa PRIMARY không được phép.

NHƯ SNAPSHOT CỦA source_database_name

Chỉ định rằng cơ sở dữ liệu đang được tạo là ảnh chụp nhanh cơ sở dữ liệu của cơ sở dữ liệu nguồn được chỉ định bởi source_database_name. Ảnh chụp nhanh và cơ sở dữ liệu nguồn phải nằm trên cùng một phiên bản.

Để biết thêm thông tin, hãy xem Ảnh chụp nhanh cơ sở dữ liệu trong phần Nhận xét.

Nhận xét

Cơ sở dữ liệu chính của phải được sao lưu bất cứ khi nào cơ sở dữ liệu người dùng được tạo, sửa đổi hoặc xóa.

Câu lệnh TẠO CƠ SỞ DỮ LIỆU phải chạy ở chế độ tự động gửi (chế độ quản lý giao dịch mặc định) và không được phép trong một giao dịch rõ ràng hoặc ẩn.

Bạn có thể sử dụng một câu lệnh CREATE DATABASE để tạo cơ sở dữ liệu và các tệp lưu trữ cơ sở dữ liệu. SQL Server triển khai câu lệnh CREATE DATABASE bằng cách sử dụng các bước sau:

  1. Máy chủ SQL sử dụng bản sao của cơ sở dữ liệu mô hình để khởi tạo cơ sở dữ liệu và siêu dữ liệu của nó.
  2. GUID của nhà môi giới dịch vụ được chỉ định cho cơ sở dữ liệu.
  3. Sau đó, Công cụ cơ sở dữ liệu sẽ lấp đầy phần còn lại của cơ sở dữ liệu bằng các trang trống, ngoại trừ các trang có dữ liệu nội bộ ghi lại cách không gian được sử dụng trong cơ sở dữ liệu.

Có thể chỉ định tối đa 32.767 cơ sở dữ liệu trên một phiên bản của SQL Server.

Mỗi cơ sở dữ liệu có một chủ sở hữu có thể thực hiện các hoạt động đặc biệt trong cơ sở dữ liệu. Chủ sở hữu là người dùng tạo cơ sở dữ liệu. Có thể thay đổi chủ sở hữu cơ sở dữ liệu bằng cách sử dụng ALTER AUTHORIZATION .

Một số tính năng cơ sở dữ liệu phụ thuộc vào các tính năng hoặc khả năng có trong hệ thống tệp để có đầy đủ chức năng của cơ sở dữ liệu. Một số ví dụ về các tính năng phụ thuộc vào bộ tính năng của hệ thống tệp bao gồm:

  • DBCC CHECKDB
  • FileStream
  • Sao lưu trực tuyến bằng VSS và ảnh chụp nhanh tệp
  • Tạo ảnh chụp nhanh cơ sở dữ liệu
  • Nhóm tệp Dữ liệu được Tối ưu hoá Bộ nhớ

Tệp Cơ sở dữ liệu và Nhóm tệp

Mọi cơ sở dữ liệu có ít nhất hai tệp, một tệp chính và tệp nhật ký giao dịch và ít nhất một nhóm tệp. Có thể chỉ định tối đa 32.767 tệp và 32.767 nhóm tệp cho mỗi cơ sở dữ liệu.

Khi bạn tạo cơ sở dữ liệu, hãy làm cho tệp dữ liệu càng lớn càng tốt dựa trên lượng dữ liệu tối đa mà bạn mong đợi trong cơ sở dữ liệu.

Chúng tôi khuyên bạn nên sử dụng Mạng vùng lưu trữ (SAN), mạng dựa trên iSCSI hoặc đĩa được gắn cục bộ để lưu trữ tệp cơ sở dữ liệu SQL Server của bạn, vì cấu hình này tối ưu hóa hiệu suất và độ tin cậy của Máy chủ SQL.

Ảnh chụp nhanh cơ sở dữ liệu

Bạn có thể sử dụng câu lệnh CREATE DATABASE để tạo một dạng xem tĩnh, chỉ đọc, một ảnh chụp nhanh cơ sở dữ liệu của cơ sở dữ liệu nguồn. Ảnh chụp nhanh cơ sở dữ liệu nhất quán về giao dịch với cơ sở dữ liệu nguồn vì nó tồn tại tại thời điểm tạo ảnh chụp nhanh. Cơ sở dữ liệu nguồn có thể có nhiều ảnh chụp nhanh.

Lưu ý

Khi bạn tạo ảnh chụp nhanh cơ sở dữ liệu, câu lệnh TẠO CƠ SỞ DỮ LIỆU không thể tham chiếu đến tệp nhật ký, tệp ngoại tuyến, tệp khôi phục và tệp không tồn tại.

Nếu việc tạo ảnh chụp nhanh cơ sở dữ liệu không thành công, ảnh chụp nhanh sẽ bị nghi ngờ và phải bị xóa. Để biết thêm thông tin, hãy xem DROP DATABASE .

Mỗi ảnh chụp nhanh vẫn tồn tại cho đến khi nó bị xóa bằng cách sử dụng DROP DATABASE .

Để biết thêm thông tin, hãy xem Ảnh chụp nhanh cơ sở dữ liệu .

Tùy chọn cơ sở dữ liệu

Một số tùy chọn cơ sở dữ liệu được đặt tự động bất cứ khi nào bạn tạo cơ sở dữ liệu. Để biết danh sách các tùy chọn này, hãy xem Tùy chọn ĐẶT CƠ SỞ DỮ LIỆU .

Cơ sở dữ liệu model và tạo cơ sở dữ liệu mới

Tất cả các đối tượng do người dùng xác định trong cơ sở dữ liệu mô hình đều được sao chép sang tất cả các cơ sở dữ liệu mới được tạo. Bạn có thể thêm bất kỳ đối tượng nào, chẳng hạn như bảng, dạng xem, thủ tục được lưu trữ, kiểu dữ liệu, v.v. vào cơ sở dữ liệu model để đưa vào tất cả cơ sở dữ liệu mới tạo.

Khi câu lệnh CREATE DATABASE & lt; database_name & gt; được chỉ định mà không có tham số kích thước bổ sung, thì tệp dữ liệu chính có cùng kích thước với tệp chính trong cơ sở dữ liệu model .

Trừ khi FOR ATTACH được chỉ định, mỗi cơ sở dữ liệu mới sẽ kế thừa cài đặt tùy chọn cơ sở dữ liệu từ cơ sở dữ liệu model . Ví dụ: tùy chọn tự động thu nhỏ cơ sở dữ liệu được đặt thành true trong model và trong bất kỳ cơ sở dữ liệu mới nào bạn tạo. Nếu bạn thay đổi các tùy chọn trong cơ sở dữ liệu model , các cài đặt tùy chọn mới này sẽ được sử dụng trong bất kỳ cơ sở dữ liệu mới nào bạn tạo. Việc thay đổi các thao tác trong cơ sở dữ liệu model không ảnh hưởng đến các cơ sở dữ liệu hiện có. Nếu FOR ATTACH được chỉ định trong câu lệnh CREATE DATABASE, thì cơ sở dữ liệu mới sẽ kế thừa cài đặt tùy chọn cơ sở dữ liệu của cơ sở dữ liệu gốc.

Xem thông tin cơ sở dữ liệu

Bạn có thể sử dụng dạng xem danh mục, chức năng hệ thống và thủ tục được lưu trữ hệ thống để trả về thông tin về cơ sở dữ liệu, tệp và nhóm tệp. Để biết thêm thông tin, hãy xem Chế độ xem hệ thống .

Quyền

Yêu cầu quyền TẠO CƠ SỞ DỮ LIỆU , TẠO BẤT KỲ CƠ SỞ DỮ LIỆU nào hoặc ALTER BẤT KỲ CƠ SỞ DỮ LIỆU nào .

Để duy trì quyền kiểm soát việc sử dụng đĩa trên một phiên bản của SQL Server, quyền tạo cơ sở dữ liệu thường bị giới hạn ở một số tài khoản đăng nhập.

Ví dụ sau cung cấp quyền tạo cơ sở dữ liệu cho người dùng cơ sở dữ liệu Fay.

  SỬ DỤNG chính;
ĐI
CẤP TẠO CƠ SỞ DỮ LIỆU CHO [Fay];
ĐI
 

Quyền đối với tệp dữ liệu và nhật ký

Trong SQL Server, một số quyền nhất định được đặt trên dữ liệu và tệp nhật ký của mỗi cơ sở dữ liệu. Các quyền sau được đặt bất cứ khi nào các thao tác sau được áp dụng cho cơ sở dữ liệu:

  • Đính kèm
  • Đã sao lưu
  • Đã tạo
  • Tách ra
  • Đã sửa đổi để thêm tệp mới
  • Đã khôi phục

Các quyền này ngăn các tệp vô tình bị giả mạo nếu chúng nằm trong thư mục có quyền đang mở.

Ghi chú

Microsoft SQL Server 2005 Express Edition không đặt quyền đối với tệp nhật ký và dữ liệu.

Ví dụ

A. Tạo cơ sở dữ liệu mà không chỉ định tệp

Ví dụ sau tạo cơ sở dữ liệu mytest và tạo tệp nhật ký giao dịch và chính tương ứng. Vì câu lệnh không có & lt; filespec & gt; , tệp cơ sở dữ liệu chính có kích thước bằng tệp chính cơ sở dữ liệu model . Nhật ký giao dịch được đặt thành lớn hơn trong các giá trị sau: 512 KB hoặc 25% kích thước của tệp dữ liệu chính. Bởi vì MAXSIZE không được chỉ định, các tệp có thể phát triển để lấp đầy tất cả không gian đĩa có sẵn. Ví dụ này cũng trình bày cách loại bỏ cơ sở dữ liệu có tên mytest nếu nó tồn tại, trước khi tạo cơ sở dữ liệu mytest .

  SỬ DỤNG chính;
ĐI
NẾU DB_ID (N'mytest ') KHÔNG ĐẦY ĐỦ
DROP DATABASE mytest;
ĐI
TẠO CƠ SỞ DỮ LIỆU mytest;
ĐI
- Xác minh các tệp và kích thước cơ sở dữ liệu
CHỌN tên, kích thước, kích thước * 1.0 / 128 AS [Kích thước tính bằng MB]
TỪ sys.master_files
WHERE name = N'mytest ';
ĐI
 

B. Tạo cơ sở dữ liệu chỉ định dữ liệu và tệp nhật ký giao dịch

Ví dụ sau tạo cơ sở dữ liệu Bán hàng . Bởi vì từ khóa PRIMARY không được sử dụng, tệp đầu tiên ( Sales_dat ) trở thành tệp chính. Bởi vì cả MB và KB đều không được chỉ định trong tham số SIZE cho tệp Sales_dat , nên nó sử dụng MB và được phân bổ theo megabyte. Tệp Sales_log được phân bổ theo megabyte vì hậu tố MB được nêu rõ ràng trong thông số SIZE .

  SỬ DỤNG chính;
ĐI
TẠO DOANH THU CƠ SỞ DỮ LIỆU
TRÊN
(NAME = Sales_dat,
    FILENAME = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ DATA \ saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5)
ĐĂNG NHẬP
(NAME = Sales_log,
    FILENAME = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ DATA \ salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25 MB,
    FILEGROWTH = 5MB);
ĐI
 

C. Tạo cơ sở dữ liệu bằng cách chỉ định nhiều dữ liệu và tệp nhật ký giao dịch

Ví dụ sau tạo cơ sở dữ liệu Archive có ba tệp dữ liệu 100-MB và hai tệp nhật ký giao dịch 100-MB . Tệp chính là tệp đầu tiên trong danh sách và được chỉ định rõ ràng bằng từ khóa PRIMARY . Các tệp nhật ký giao dịch được chỉ định theo các từ khóa LOG ON . Lưu ý rằng các phần mở rộng được sử dụng cho các tệp trong tùy chọn FILENAME : .mdf được sử dụng cho các tệp dữ liệu chính, .ndf được sử dụng cho dữ liệu phụ và .ldf được sử dụng cho các tệp nhật ký giao dịch. Ví dụ này đặt cơ sở dữ liệu trên ổ đĩa D: thay vì đặt cơ sở dữ liệu master .

  SỬ DỤNG chính;
ĐI
TẠO Lưu trữ CƠ SỞ DỮ LIỆU
TRÊN
SƠ CẤP
    (NAME = Arch1,
    FILENAME = 'D: \ SalesData \ Archdat1.mdf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    (NAME = Arch2,
    FILENAME = 'D: \ SalesData \ Archdat2.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    (NAME = Arch3,
    FILENAME = 'D: \ SalesData \ Archdat3.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20)
ĐĂNG NHẬP
  (NAME = Archlog1,
    FILENAME = 'D: \ SalesData \ Archlog1.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
  (NAME = Archlog2,
    FILENAME = 'D: \ SalesData \ Archlog2.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20);
ĐI
 

D. Tạo cơ sở dữ liệu có nhóm tệp

Ví dụ sau tạo cơ sở dữ liệu Bán hàng có các nhóm tệp sau:

  • Nhóm tệp chính có các tệp Spri1_dat Spri2_dat . Gia số FILEGROWTH cho các tệp này được chỉ định là 15% .
  • Nhóm tệp có tên SalesGroup1 với các tệp SGrp1Fi1 SGrp1Fi2 .
  • Nhóm tệp có tên SalesGroup2 với các tệp SGrp2Fi1 SGrp2Fi2 .

Ví dụ này đặt dữ liệu và tệp nhật ký trên các đĩa khác nhau để cải thiện hiệu suất.

 SỬ DỤNG chính;
ĐI
TẠO DOANH THU CƠ SỞ DỮ LIỆU
VỀ CHÍNH
(NAME = SPri1_dat,
    FILENAME = 'D: \ SalesData \ SPri1dat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15%),
(NAME = SPri2_dat,
    FILENAME = 'D: \ SalesData \ SPri2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15%),
FILEGROUP SalesGroup1
(NAME = SGrp1Fi1_dat,
    FILENAME = 'D: \ SalesData \ SG1Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5),
(NAME = SGrp1Fi2_dat,
    FILENAME = 'D: \ SalesData \ SG1Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5),
FILEGROUP SalesGroup2
(NAME = SGrp2Fi1_dat,
    FILENAME = 'D: \ SalesData \ SG2Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5),
(NAME = SGrp2Fi2_dat,
    FILENAME = 'D: \ SalesData \ SG2Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5)
ĐĂNG NHẬP
(NAME = Sales_log,
    FILENAME = 'E: \ SalesLog \ salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25 MB,
    FILEGROWTH = 5MB);
ĐI
 

E. Đính kèm cơ sở dữ liệu

Ví dụ sau tách cơ sở dữ liệu Lưu trữ được tạo trong ví dụ D, sau đó đính kèm nó bằng cách sử dụng mệnh đề FOR ATTACH . Lưu trữ được xác định là có nhiều dữ liệu và tệp nhật ký. Tuy nhiên, vì vị trí của tệp không thay đổi kể từ khi chúng được tạo, nên chỉ tệp chính phải được chỉ định trong mệnh đề FOR ATTACH . Bắt đầu với SQL Server 2005 (9.x), mọi tệp toàn văn là một phần của cơ sở dữ liệu đang được đính kèm sẽ được đính kèm với cơ sở dữ liệu.

  SỬ DỤNG chính;
ĐI
sp_detach_db Lưu trữ;
ĐI
TẠO Lưu trữ CƠ SỞ DỮ LIỆU
  BẬT (FILENAME = 'D: \ SalesData \ Archdat1.mdf')
  ĐỐI VỚI ĐÍNH KÈM;
ĐI
 

F. Tạo ảnh chụp nhanh cơ sở dữ liệu

Ví dụ sau tạo ảnh chụp nhanh cơ sở dữ liệu sales_snapshot0600 . Vì ảnh chụp nhanh cơ sở dữ liệu ở chế độ chỉ đọc, nên không thể chỉ định tệp nhật ký. Theo cú pháp, mọi tệp trong cơ sở dữ liệu nguồn đều được chỉ định và nhóm tệp không được chỉ định.

Cơ sở dữ liệu nguồn cho ví dụ này là cơ sở dữ liệu Bán hàng được tạo trong ví dụ D.

  SỬ DỤNG chính;
ĐI
TẠO CƠ SỞ DỮ LIỆU sales_snapshot0600 BẬT
    (NAME = SPri1_dat, FILENAME = 'D: \ SalesData \ SPri1dat_0600.ss'),
    (NAME = SPri2_dat, FILENAME = 'D: \ SalesData \ SPri2dt_0600.ss'),
    (NAME = SGrp1Fi1_dat, FILENAME = 'D: \ SalesData \ SG1Fi1dt_0600.ss'),
    (NAME = SGrp1Fi2_dat, FILENAME = 'D: \ SalesData \ SG1Fi2dt_0600.ss'),
    (NAME = SGrp2Fi1_dat, FILENAME = 'D: \ SalesData \ SG2Fi1dt_0600.ss'),
    (NAME = SGrp2Fi2_dat, FILENAME = 'D: \ SalesData \ SG2Fi2dt_0600.ss')
NHƯ TUYỆT VỜI CỦA DOANH SỐ;
ĐI
 

G. Tạo cơ sở dữ liệu và chỉ định tên đối chiếu và các tùy chọn

Ví dụ sau tạo cơ sở dữ liệu MyOptionsTest . Tên đối chiếu được chỉ định và các tùy chọn TRUSTYWORTHY DB_CHAINING được đặt thành ON .

  SỬ DỤNG chính;
ĐI
NẾU DB_ID (N'MyOptionsTest ') KHÔNG ĐẦY ĐỦ
DROP DATABASE MyOptionsTest;
ĐI
TẠO CƠ SỞ DỮ LIỆU MyOptionsTest
COLLATE tiếng Pháp_CI_AI
VỚI SỰ TIN TƯỞNG BẬT, DB_CHAINING BẬT;
ĐI
--Xác minh cài đặt đối chiếu và tùy chọn.
CHỌN tên, collation_name, is_trustworthy_on, is_db_chaining_on
TỪ sys.databases
WHERE name = N'MyOptionsTest ';
ĐI
 

H. Đính kèm danh mục toàn văn đã được di chuyển

Ví dụ sau đính kèm danh mục toàn văn AdvWksFtCat cùng với các tệp nhật ký và dữ liệu AdventureWorks2012 . Trong ví dụ này, danh mục toàn văn được chuyển từ vị trí mặc định sang vị trí mới c: \ myFTCatalogs . Dữ liệu và tệp nhật ký vẫn ở vị trí mặc định của chúng.

  SỬ DỤNG chính;
ĐI
- Cài đặt cơ sở dữ liệu AdventureWorks2012
sp_detach_db AdventureWorks2012;
ĐI
- Di chuyển toàn bộ danh mục văn bản đến vị trí mới.
- Đính kèm cơ sở dữ liệu AdventureWorks2012 và chỉ định vị trí mới của danh mục toàn văn.
TẠO CƠ SỞ DỮ LIỆU AdventureWorks2012 BẬT
    (FILENAME = 'c: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Data \ AdventureWorks2012_data.mdf'),
    (FILENAME = 'c: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Data \ AdventureWorks2012_log.ldf'),
    (FILENAME = 'c: \ myFTCatalogs \ AdvWksFtCat')
ĐỐI VỚI ĐÍNH KÈM;
ĐI
 

Tôi. Tạo cơ sở dữ liệu chỉ định một nhóm tệp hàng và hai nhóm tệp FILESTREAM

Ví dụ sau tạo cơ sở dữ liệu FileStreamDB . Cơ sở dữ liệu được tạo với một nhóm tệp hàng và hai nhóm tệp FILESTREAM. Mỗi nhóm tệp chứa một tệp:

  • FileStreamDB_data chứa dữ liệu hàng. Nó chứa một tệp, FileStreamDB_data.mdf với đường dẫn mặc định.
  • FileStreamPhotos chứa dữ liệu FILESTREAM. Nó chứa hai vùng chứa dữ liệu FILESTREAM, FSPhotos , đặt tại C: \ MyFSfolder \ Photos FSPhotos2 , đặt tại D: \ MyFSfolder \ Ảnh . Nó được đánh dấu là nhóm tệp FILESTREAM mặc định.
  • FileStreamResumes chứa dữ liệu FILESTREAM. Nó chứa một vùng chứa dữ liệu FILESTREAM, FSResumes , nằm tại C: \ MyFSfolder \ Resumes .
  SỬ DỤNG chính;
ĐI
- Lấy đường dẫn dữ liệu SQL Server.
DECLARE @data_path nvarchar (256);
SET @data_path = (CHỌN ĐĂNG KÝ (tên_trình_học, 1, CHARINDEX (N'master.mdf ', LOWER (tên_sử_tính)) - 1)
      TỪ master.sys.master_files
      WHERE database_id = 1 AND file_id = 1);

 - Thực hiện câu lệnh CREATE DATABASE.
THỰC HIỆN ('TẠO CƠ SỞ DỮ LIỆU TệpStreamDB
VỀ CHÍNH
    (
    NAME = FileStreamDB_data
    , FILENAME = '' '+ @data_path +' FileStreamDB_data.mdf ''
    , SIZE = 10MB
    , MAXSIZE = 50MB
    , FILEGROWTH = 15%
    ),
FILEGROUP FileStreamPhotos CHỨA ĐỊNH NGHĨA FILESTREAM
    (
    NAME = FSPhotos
    , FILENAME = '' C: \ MyFSfolder \ Ảnh ''
- Không nên chỉ định SIZE và FILEGROWTH ở đây.
- Nếu chúng được chỉ định, một lỗi sẽ được nâng lên.
, MAXSIZE = 5000 MB
    ),
    (
      NAME = FSPhotos2
      , FILENAME = '' D: \ MyFSfolder \ Ảnh ''
      , MAXSIZE = 10000 MB
     ),
FILEGROUP FileStreamResumes CHỨA FILESTREAM
    (
    NAME = FileStreamResumes
    , FILENAME = '' C: \ MyFSfolder \ Resumes ''
    )
ĐĂNG NHẬP
    (
    NAME = FileStream_log
    , FILENAME = '' '+ @data_path +' FileStreamDB_log.ldf ''
    , SIZE = 5MB
    , MAXSIZE = 25 MB
    , FILEGROWTH = 5MB
    ) '
);
ĐI
 

J. Tạo cơ sở dữ liệu có nhóm tệp FILESTREAM với nhiều tệp

Ví dụ sau tạo cơ sở dữ liệu BlobStore1 . Cơ sở dữ liệu được tạo với một nhóm tệp hàng và một nhóm tệp FILESTREAM, FS . Nhóm tệp FILESTREAM chứa hai tệp, FS1 FS2 . Sau đó, cơ sở dữ liệu được thay đổi bằng cách thêm tệp thứ ba, FS3 , vào nhóm tệp FILESTREAM.

  SỬ DỤNG chính;
ĐI

TẠO CƠ SỞ DỮ LIỆU [BlobStore1]
CONTAINMENT = KHÔNG
VỀ CHÍNH
(
    NAME = N'BlobStore1 ',
    FILENAME = N'C: \ BlobStore \ BlobStore1.mdf ',
    SIZE = 100MB,
    MAXSIZE = KHÔNG GIỚI HẠN,
    FILEGROWTH = 1MB
),
FILEGROUP [FS] CHỨA ĐỊNH NGHĨA FILESTREAM
(
    NAME = N'FS1 ',
    FILENAME = N'C: \ BlobStore \ FS1 ',
    MAXSIZE = KHÔNG GIỚI HẠN
),
(
    NAME = N'FS2 ',
    FILENAME = N'C: \ BlobStore \ FS2 ',
    MAXSIZE = 100MB
)
ĐĂNG NHẬP
(
    NAME = N'BlobStore1_log ',
    FILENAME = N'C: \ BlobStore \ BlobStore1_log.ldf ',
    SIZE = 100MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 1MB
);
ĐI

ALTER DATABASE [BlobStore1]
THÊM TẬP TIN
(
    NAME = N'FS3 ',
    FILENAME = N'C: \ BlobStore \ FS3 ',
    MAXSIZE = 100MB
)
ĐẾN FILEGROUP [FS];
ĐI
 

Xem thêm


Xem thêm những thông tin liên quan đến chủ đề lệnh sql để tạo cơ sở dữ liệu

Sử dụng câu lệnh sql tạo cơ sở dữ liệu Quanlybanhang P3

  • Tác giả: Marry Vlog
  • Ngày đăng: 2022-04-07
  • Đánh giá: 4 ⭐ ( 3169 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: SQL là một ngôn ngữ để tương tác với cơ sở dữ liệu; Nó bao gồm việc tạo ra cơ sở dữ liệu, xóa, lấy các hàng, sửa đổi các hàng, vv SQL là một ngôn ngữ chuẩn ANSI (American National Standards Institute), nhưng có nhiều phiên bản khác nhau của ngôn ngữ SQL.
    SQL quanlybanhang IT

Create Database trong SQL

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 6482 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Câu lệnh SQL CREATE DATABASE được sử dụng để tạo một cơ sở dữ liệu SQL mới. Tên cơ sở dữ liệu phải là duy nhất trong RDBMS. Ví dụ CREATE DATABASE testDB;

SQL là gì? Các lệnh cơ bản trong lập trình cơ sở dữ liệu SQL

  • Tác giả: wiki.matbao.net
  • Đánh giá: 4 ⭐ ( 3362 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: SQL là gì? SQL là loại ngôn ngữ máy tính, giúp cho thao tác lưu trữ và truy xuất dữ liệu được lưu trữ trong một cơ sở dữ liệu quan hệ.

Lệnh CREATE TABLE trong SQL để tạo bảng cơ sở dữ liệu

  • Tác giả: nq.com.vn
  • Đánh giá: 3 ⭐ ( 7218 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Câu lệnh tạo cơ sở dữ liệu (create database) trong SQL

  • Tác giả: freehost.page
  • Đánh giá: 3 ⭐ ( 5731 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Hướng dẫn tạo cơ sở dữ liệu trong SQL Server

  • Tác giả: giasutinhoc.vn
  • Đánh giá: 5 ⭐ ( 4726 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

[Tự học SQL] Tạo, Xoá, Sao lưu Cơ sở dữ liệu(DATABASE) trong SQL

  • Tác giả: cafedev.vn
  • Đánh giá: 4 ⭐ ( 3489 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này cafedev chia sẻ cho ace về cách để tạo, xoá sao lưu một cơ sở dữ liệu của bạn trong SQL.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php