SSDT – Quản lý SQL Server Object từ Visual Studio

SSDT cung cấp công cụ để xem các object trong csdl của bạn tương tự như trong SQL Server Management Studio mang tên SQL Server Object Explorer (SSOE) ngay bên trong Visual Studio. Với công cụ này bạn có thể dễ dàng thiết kế, chỉnh sửa, đổi tên và xóa các table, store procedure, type, function. Bạn cũng có thể so sánh các schema, hay thực thi các câu lệnh truy vấn ngay trong SQL Server Object Explorer. Bạn có thể tìm thấy công cụ này trong Visual Studio từ thanh menu -> View -> SQL Server Object Explorer.

ssdt_visualstudio_2015_02

ssdt_visualstudio_2015_03

Để kết nối đến server csdl từ SSOE, bạn click vào biểu tượng kết nối như mô tả trong hình dưới đây, khi đó một cửa sổ với các thông tin kết nối đến server csdl hiện lên tương tự như cửa sổ đăng nhập vào SQL Server Management Studio để bạn điền vào.

ssdt_visualstudio_2015_05

Tạo mới CSDL với SSOE:

Từ SSOE, bạn click phải vào node Databases -> Add New Database và đặt tên db mà bạn muốn tạo.

ssdt_visualstudio_2015_00

Các thư mục con tự động được tạo ra dành cho db vừa được tạo.

ssdt_visualstudio_2015_06

Một lưu ý nhỏ ở đây cho bạn là thao tác tạo mới db mà bạn vừa thực hiện là trực tiếp trên một SQL Server instance, và việc tạo mới, chỉnh sửa db với SSOE này được gọi là Connected Database Development.

Tiếp theo, chúng ta sẽ thực hiện việc thêm 1 table mới vào db vừa tạo ở trên. Bạn click phải vào thư mục Tables bên dưới db -> Add New Table…

ssdt_visualstudio_2015_01

Bạn có thể định nghĩa table từ cửa sổ T-SQL bên dưới, hoặc trực tiếp ở cửa sổ Table Designer bên trên. Bây giờ, chúng ta sẽ tạo bảng Customer với các cột CustomerId làm khóa chính, LastNameFirstName.

ssdt_visualstudio_2015_02

Bạn có thể dễ dàng tạo Foreign Key cho bảng bằng cách click phải vào Foreign Keys bên dưới bảng Keys bên phải -> Add New Foreign Key.

ssdt_visualstudio_2015_08

Bạn có thể dễ dàng chỉ định cột làm identity, ví dụ trong trường hợp này ta chọn cột CustomerId làm identity, bằng cách click chọn vào cột CustomerId -> trong cửa sổ Properties -> Identity Specification -> chọn Is IdentityTrue

ssdt_visualstudio_2015_09

Trong cửa sổ T-SQL, cột CustomerId được điều chỉnh ngay lập tức.

ssdt_visualstudio_2015_10

Bạn để ý ở đây rằng, mặc dù chúng ta thêm, chỉnh sửa các cột cho bảng [dbo].[Customer] nhưng bảng này vẫn chưa xuất hiện trong SSOE.

ssdt_visualstudio_2015_11

Ở đây, thông tin về bảng [dbo].[Customer] được lưu trữ trong bộ nhớ sử dụng công nghệ SSDT Power Buffer. Công nghệ này giúp bạn đưa tất cả những thay đổi được thực hiện vào connected db bằng cách lưu tất cả thông tin thay đổi trong session hiện tại. Bất kì lỗi nào gây ra trong quá trình cập nhật trong cửa sổ Power Buffer (bao gồm cửa sổ T-SQL hay Table Designer) ngay lập tức được hiển thị trong cửa sổ Error List để dễ dàng tìm ra nguyên nhân đề khắc phục. Trong suốt quá trình cập nhật, SSDT tự động tạo ra ALTER script dựa trên các thay đổi của bạn, và thông báo cho bạn các issue liên quan, và bạn có thể lưu ALTER script để deploy sau này.

Để cập nhật những thay đổi vào csdl, bạn nhấn vào nút Update trong cửa sổ Table Designer bên trên.

ssdt_visualstudio_2015_12

Một cửa sổ hiện lên với các thông tin liên quan, tại đây bạn có thể thực hiện cập nhật csdl ngay lập tức bằng cách nhấn vào nút Update Database, hoặc tạo ra script để deploy sau này bằng cách nhấn vào nút Generate Script bên cạnh. Trong demo này mình chọn Update Database.

ssdt_visualstudio_2015_13

Trong lúc đó, cửa sổ Data Tools Operations bên dưới sẽ hiển thị thông tin quá trình cập nhật csdl và cho bạn 3 lựa chọn để xem chi tiết thêm, đó là View Preview, View ScriptView Results.

ssdt_visualstudio_2015_14

View Preview: xem lại nội dung cập nhật

ssdt_visualstudio_2015_15

View Script: xem script đã được tạo ra cho csdl vừa được cập nhật

ssdt_visualstudio_2015_16

View Results: xem kết quả của lần cập nhật này

ssdt_visualstudio_2015_17

Khi đó, bảng [dbo].[Customer] đã xuất hiện trong SSOE.

ssdt_visualstudio_2015_18

Cập nhật CSDL với SSDT

Bây giờ chúng ta thêm 1 cột mới EmailAddress vào bảng này.

ssdt_visualstudio_2015_03

Bạn để ý ở đây, trong cửa sổ T-SQL, script cập nhật vẫn dựa trên lệnh CREATE TABLE mà không phải là ALTER. Công nghệ SSDT Power Buffer đảm bảo cấu trúc csdl của bạn, và sẽ tự động nhận biết các thay đổi và tạo ra script phù hợp cho các thay đổi đó.

Một điểm mà mình muốn giới thiệu cho các bạn ở đây là bạn có thể dùng code-snippet để code nhanh trong T-SQL. Trong cửa sổ T-SQL bên dưới, bạn click phải vào dòng code mà bạn muốn thêm và chọn Insert Snippet… Trong demo sau, mình sẽ thực hiện đánh index cho cột LastName sử dụng snippet.

ssdt_visualstudio_2015_04

Bạn click Update để tiến hành cập nhật csdl, một cửa sổ hiện lên với thông tin các hành động sẽ được thực hiện.

ssdt_visualstudio_2015_19

Như vậy, tới đây bạn có thể biết được cách để thêm mới và cập nhật csdl với SSDT từ SSOE.

Tạo mới Stored Procedure

Bạn click phải vào node Stored Procedures bên trong node Programmability của csdl đã tạo và chọn Add New Stored Procedures…

ssdt_visualstudio_2015_05

Stored Procedure template mặc định hiện lên bên trong cửa sổ bên cạnh để bạn thực hiện chỉnh sửa các tham số mà bạn mong muốn. Nếu đoạn code của bạn có lỗi thì IntelliSense trong Visual Studio sẽ hiển thị lên, khi bạn trỏ vào đoạn code lỗi, VS sẽ hiển thị gợi ý để bạn sửa lỗi.

ssdt_visualstudio_2015_20

IntelliSense trong VS cũng sẽ giúp bạn viết nhanh đoạn code Stored Procedure với các gợi ý khi bạn dùng tổ hợp phím Ctrl+Space.

ssdt_visualstudio_2015_06

Tương tự như việc tạo mới 1 table ở trên, để các thông tin của stored procedure bạn vừa tạo ra được lưu vào csdl, bạn hãy nhấn vào nút Update phía trên trong Table Designer như hình mô tả dưới

ssdt_visualstudio_2015_21

Tương tự, một cửa sổ hiện lên với các thông tin về hành động sắp được thực thi và cho bạn 2 lựa chọn (1 là tạo script để deploy sau, 2 là cập nhật csdl ngay lập tức) để thực hiện.

ssdt_visualstudio_2015_22

Và stored procedure vừa tạo (CustomerRetrieve) đã xuất hiện trong csdl sau khi chọn Update Database.

ssdt_visualstudio_2015_23

Trong cửa sổ code của stored procedure vừa tạo, bạn click phải và chọn Execute.

ssdt_visualstudio_2015_24

Khi đó, trong cửa sổ Result của T-SQL, thông báo xuất hiện cho biết là đã có object tên là ‘CustomerRetrieve’ trong csdl.

ssdt_visualstudio_2015_25

Nguyên nhân là trong toàn bộ câu lệnh, ở phần đầu chúng ta để nguyên lệnh CREATE PROCEDURE và sử dụng cùng tên với stored procedure vừa tạo, và câu lệnh đó dùng để tạo mới stored procedure nên sẽ báo lỗi. Để thực thi stored procedure này, bạn chọn phần lệnh trong mệnh đề SELECTExecute để cho ra kết quả theo như demo dưới đây.

ssdt_visualstudio_2015_07

Kết quả trả ra là danh sách rỗng vì csdl của chúng ta chưa có dữ liệu. Bước tiếp theo trong phần demo chúng ta sẽ thực hiện việc thêm dữ liệu vào csdl mà chúng ta đã tạo ở trên.

Thêm dữ liệu vào csdl

SSDT cho phép bạn thêm/sửa dữ liệu trực tiếp và csdl (connected database) từ Data Editor. Để thực hiện việc này, bạn click phải vào 1 bảng và chọn View Data.

ssdt_visualstudio_2015_26

Và cửa sổ Data Editor xuất hiện kèm thông tin về các cột của bảng để bạn xác định vị trí điều dữ liệu ssdt_visualstudio_2015_27

Vì cột CustomerId chúng ta đã khai báo là Identity nên chúng ta không cần điền, chúng ta chỉ cần điền thông tin vào 3 cột còn lại.

ssdt_visualstudio_2015_09

Bạn cũng nên lưu ý ở đây là dữ liệu sẽ được ghi trực tiếp ngay lập tức vào csdl nên cần cẩn trọng khi thêm/sửa dữ liệu vào các bảng. Để xóa 1 dòng dữ liệu, bạn chỉ cần click phải vào dòng muốn xóa và chọn Delete.

ssdt_visualstudio_2015_28

Bây giờ chúng ta sẽ quay trở lại stored procedure đã tạo trước đó, thực thi và xem kết quả trả về bằng cách click phải vào stored procedure và chọn Execute Procedure…

ssdt_visualstudio_2015_10

Phần sau mình sẽ hướng dẫn các bạn dùng SSDT để quản lý script với 1 database project: Quản lý script với database project trong Visual Studio.

2 thoughts on “SSDT – Quản lý SQL Server Object từ Visual Studio

  1. Pingback: Visual Studio Data Tools | Huy Tran's space
  2. Pingback: SSDT – Quản lý script với Database Project trong Visual Studio | Huy Tran's space

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s