66

Mỗi SQL kết nối máy chủ chuỗi mà tôi từng nhìn thấy trông giống như sau:Điểm "Catalog ban đầu" trong chuỗi kết nối SQL Server là gì?

Data Source=MyLocalSqlServerInstance;Initial Catalog=My Nifty Database; 
    Integrated Security=SSPI; 

Tôi có cần thiết lập Initial Catalog? (Rõ ràng là không, vì ứng dụng tôi đang làm việc dường như hoạt động mà không có nó.)

Vâng, sau đó, nó là gì?

+24

Hmmm, tôi vừa phát hiện ra rằng ứng dụng của tôi đặt tất cả các bảng đã tạo của tôi vào chính. Rất tiếc. Tôi có thể vừa học được câu trả lời cho câu hỏi của mình. –

Trả lời

38

Nếu người dùng là chuỗi kết nối có quyền truy cập vào nhiều hơn thì một cơ sở dữ liệu bạn phải chỉ định cơ sở dữ liệu bạn muốn chuỗi kết nối kết nối. Nếu người dùng của bạn chỉ có một cơ sở dữ liệu có sẵn thì bạn đúng là không quan trọng. Nhưng nó là thực hành tốt để đặt này trong chuỗi kết nối của bạn.

+7

Không hoàn toàn đúng. Đăng nhập có thể không có quyền trên cơ sở dữ liệu mặc định. Vì vậy, bạn cần phải thay đổi bối cảnh cơ sở dữ liệu trên kết nối – gbn

+0

Điều này là bắt buộc đối với khung Entity nếu bạn chỉ định sử dụng tham số -ConnectionStringName, vì vậy chắc chắn thực hành tốt nhưng đôi khi cũng được yêu cầu! –

29

Đây là initial database nguồn dữ liệu khi bạn kết nối.

Edited cho rõ ràng:

Nếu bạn có nhiều cơ sở dữ liệu trong trường hợp SQL Server của bạn và bạn không muốn sử dụng cơ sở dữ liệu mặc định, bạn cần một số cách để xác định cái nào bạn sẽ sử dụng.

+1

Phần đầu tiên là chính xác. Phần thứ hai là không chính xác. Khi bạn tạo tài khoản, nó được gán một cơ sở dữ liệu mặc định sẽ được sử dụng nếu danh mục ban đầu không được chỉ định. Điều này thường mặc định để làm chủ (đối với một số lý do không rõ). – GrayWizardx

+0

Khi tôi nói "theo mặc định", tôi chỉ đơn giản có nghĩa là khi bạn không đủ điều kiện cơ sở dữ liệu trong tên đối tượng của bạn. Trong mọi trường hợp, tôi đã làm rõ câu trả lời của mình. –

8

Đặt danh mục ban đầu cho phép bạn đặt cơ sở dữ liệu truy vấn chạy trên kết nối đó sẽ sử dụng theo mặc định. Nếu bạn không đặt kết nối này cho một máy chủ có nhiều cơ sở dữ liệu, trong nhiều trường hợp, bạn sẽ được yêu cầu có một câu lệnh USE trong mỗi truy vấn để khai báo rõ ràng cơ sở dữ liệu nào bạn đang cố chạy truy vấn. Thiết lập Catalog ban đầu là một cách tốt để khai báo một cơ sở dữ liệu mặc định.

Các vấn đề liên quan