Giải Mã Store Procedure Bị Mã Hóa Trong Sql Server

Khi bảo trì một dự án phần mềm, Nếu bạn gặp phải trường hợp phải sửa một store procedure, function, trigger, view mà bị mã hóa thì có vẻ hơn ngán vì rất khó để lấy được code nguyên bản để sửa. Bài viết hôm nay mình sẽ giới thiệu cách để giải mã ra code.

1. Làm Sao Để Mã Hóa Một Store Procedure.

Để tạo một store procedure được mã hóa ta dùng thêm lệnh “with encryption” như trong hình dưới.

Continue reading

CÁC KIỂU DỮ LIỆU TRONG SQL (DATA TYPES)

Các kiểu dữ liệu trong SQL (Data types)

Trong Microsoft SQL mỗi cột (column), biến cục bộ (local variable) biểu thức (expression) và tham số (parameter) đều có một kiểu dữ liệu liên quan. Dưới đây là các kiểu dữ liệu trong SQL.

Exact numberics (số chính xác, không sai số):

Integers (số nguyên):

  • Bigint: khoảng giá trị từ -263 đến 263 -1 tức từ -9.223.372.036.854.775.808 đến 9.223.372.036.854.775,807.
  • Int: khoảng giá trị từ -231 đến 231 -1 tức từ -2.147.483.648 đến 2.147.483.647.
  • Smallint: khoảng giá trị từ -215 đến 215 tức từ -32.768 đến 32.767.
  • Tinyint: khoảng giá trị từ 0 đến 255.
  • Bit: chứa giá trị 0 hoặc 1.

Continue reading

Mệnh đề INTERSECT trong SQL

Mệnh đề/Toán tử INTERSECT trong SQL được sử dụng để kết hợp hai lệnh SELECT, nhưng trả về các hàng chỉ từ lệnh SELECT đầu tiên mà là đồng nhất với một hàng trong lệnh SELECT thứ hai. Nghĩa là, INTERSECT chỉ trả về các hàng chung được trả về bởi hai lệnh SELECT.

Các qui tắc áp dụng cho toán tử UNION cũng áp dụng cho toán tử INTERSECT. MySQL không hỗ trợ toán tử INTERSECT. Continue reading

SQL DEFAULT Constraint

SQL DEFAULT Constraint

The DEFAULT constraint is used to provide a default value for a column.

The default value will be added to all new records IF no other value is specified.


SQL DEFAULT on CREATE TABLE

The following SQL sets a DEFAULT value for the “City” column when the “Persons” table is created: Continue reading

Tạo Cột Số Tăng Tự Động – Bằng Design Và Bằng Lệnh

Cột số tăng tự động (Auto-increment) cho phép một số duy nhất được tự động tạo ra và tăng lên 1 giá trị nhất định (seed) khi một dòng mới được thêm vào bảng.

1. Bằng SQL Server Management Studio

– Khi thiết kế table, chọn cột muốn làm cột số tăng tự độn

g (ví dụ: cột ID)

– Chọn Is IdentityYes

 

Identity Increment: 1 (mỗi lần tăng 1 đơn vị)

Identity Seed: 1 (vị trí bắt đầu)

Trigger trong SQL

Trigger được hiểu đơn giản là một thủ tục được thực thi từ phía máy chủ cơ sở dữ liệu (CSDL) khi có một sự kiện xãy ra như  Update, Insert hay Delete.

Trigger thường dùng để kiểm ra các ràng buộc toàn vẹn trên CSDL, và chúng được thực thi một cách tự động mà không cần sự can thiệp bằng các thao tác thủ công như kiểm tra dữ liệu, đồng bộ hóa dữ liệu,…

– Tạo Trigger

Cú pháp để tạo một Trigger cơ bản như sau:

1
2
3
4
5
CREATE TRIGGER trigger_name
ON { table | view } -- Chỉ định bảng hoặc view sử dụng Trigger
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } -- Các biến cố tự động kích hoạt Trigger
AS { sql_statement,...}

+Về các tham số { FOR | AFTER | INSTEAD OF }

Khi thực hiện một Trigger thì SQL tự động tạo ra 2 bảng InsertedDeleted trong bộ nhớ chính và cục bộ cho mỗi Trigger, có nghĩa là khi áp dụng Trigger trên bảng nào thì bảng Inserted và Deleted sẽ được sử dụng riêng cho đó bảng đó.

Cấu trúc 2 bảng InsertedDeleted được tạo ra sẽ giống hệt cấu trúc của bảng mà Trigger đang thực thi và chúng chỉ tồn tại trong thời gian Trigger đó thực thi mà thôi.

Ví dụ trên: 2 bảng Inserted và Deleted có cấu trúc giống với bảng CTHD (Bảng mà Trigger đang thực thi) gồm các cột: SoHD, MaSP, SL Continue reading

Các hàm chuyển đổi kiểu dữ liệu trong SQL

Công dụng của các hàm này dùng để chuyển đổi qua lại các kiểu dữ liệu tương thích nhau bên trong Microsoft SQL Server. Thông thường trong các xử lý bạn thường chuyển đổi các kiểu dữ liệu số hoặc kiểu dữ liệu ngày giờ về kiểu dữ liệu chuỗi để hiển thị ra màn hình.

1/- Hàm CAST

Với cú pháp hàm CAST bên dưới cho phép bạn có thể chuyển đổi một biểu thức nào đó sang một kiểu dữ liệu bất kỳ mong muốn. Thông thường đối với các kiểu dữ liệu image, text, ntext rất hạn chế trong việc chuyển đổi qua lại các kiểu dữ liệu khác.

Cú pháp :

Ảnh

Trong đó :

• Biểu thức : là tên của một cột trong bảng hoặc một biểu thức tính toán cần chuyển sang kiểu dữ liệu mới.

• Kiểu dữ liệu : tên kiểu dữ liệu mới mà biểu thức sẽ được chuyển đổi sang.

Ví dụ :

Để hiển thị danh sách các vật tư có trong bảng VATTU, trong đó có cột tỷ lệ phần trăm được hiển thị theo dạng xxx%. Bạn sử dụng hàm CAST để chuyển đổi giá trị cột phần trăm từ kiểu dữ liệu số sang kiểu dữ liệu chuỗi và sử dụng toán tử cộng chuỗi (+) để nối thêm ký tự %. Continue reading