Breaking News
Loading...
13/03/2013

Stored Procedure, View, Trigger là gì?


`wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES
(580, 1, '2011-07-28 04:21:09', '2011-07-28 04:21:09', '<a href="http://sqlvn.com/wp-content/uploads/Responsibility.gif"><img class="alignnone size-full wp-image-382" title="Responsibility" src="http://sqlvn.com/wp-content/uploads/Responsibility.gif" alt="" width="300" height="218" /></a>\r\n\r\nĐọc nhiều bài báo về trách nhiệm của DBA đối với công việc, có nhiều quan điểm được đưa ra, khái quát những yếu tố chính DBA phải đảm bảo cho yêu cầu doanh nghiệp.  Nhưng hầu hết đều tập trung phân tích 4 yếu tố chính,  xin chia sẻ ra đây:<!--more-->\r\n\r\n<span style="color: #ff0000;"><strong>1. Bảo mật (Security)</strong></span>: Ai có quyền gì trong hệ thống, được xem những thông tin gì, được sử dụng những chức năng gì. Chế độ xác thực như thế nào? Các TCP port được sử dụng...DBA phải kiểm soát những vấn đề này.\r\n\r\n<span style="color: #ff0000;"><strong>2. Độ sẵn sàng cao (High Availability)</strong></span>: DBA phải đảm bảo database luôn sẵn sàng phục vụ khi có sự cố. Đây là trách nhiệm cơ bản của DBA. Trong SQL 2008 đã tích hợp sẵn một số giải pháp High Availability bao gồm <strong><span style="color: #008000;">Failover Clustering, Database Mirroring, Transaction Log Shipping</span></strong>. Tùy vào độ phức tạp của ứng dụng, cơ sở hạ tầng mà chọn giải pháp thích hợp.\r\n\r\n<span style="color: #ff0000;"><strong>3. Độ tin cậy (Reliability)</strong></span>: Hiệu năng của Database quá tồi, hay những sự cố hư hỏng phần cứng khi xảy ra không chỉ ảnh hưởng đến người dùng cuối, gián đoạn các hoạt động của doanh nghiệp mà còn hứa hẹn một thời gian làm việc vất vả của DBA để khắc phục các sự cố. Vì vậy DBA phải có kế hoạch để chẩn đoán và bảo trì hệ thống, phát hiện kịp thời các sự cố tiềm ẩn. Khi có kế hoạch thì phải kiểm thử các kế hoạch đó xem có hiệu quả hay không. Có nhiều công cụ cho DBA làm việc đó, ví dụ như <span style="color: #008000;"><strong>System Monitor, SQL Profiler, DMV</strong></span>…\r\n\r\n<span style="color: #ff0000;"><strong>4. Khả năng phục hồi (Recoverability)</strong></span>: Khi sự cố đã xảy ra, Database không thể tiếp tục làm việc, thì nó phải được phục hồi càng nhanh càng tốt với lượng dữ liệu bị mất là ít nhất. Vậy DBA phải có kế hoạch Backup và kiểm thử các bản Backup định kỳ.\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/DBAResponsibility.png"><img class="alignnone size-full wp-image-383" title="DBAResponsibility" src="http://sqlvn.com/wp-content/uploads/DBAResponsibility.png" alt="" width="631" height="340" /></a>\r\n\r\n<span style="color: #008000;"><strong>Nguồn</strong></span>: bài viết được thực hiện từ việc tham khảo các kiến thức từ Internet\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>\r\n&nbsp;', 'Trách nhiệm của Database Administrator (DBA)', '', 'inherit', 'open', 'open', '', '381-revision-10', '', '', '2011-07-28 04:21:09', '2011-07-28 04:21:09', '', 381, 'http://sqlvn.com/uncategorized/381-revision-10.html', 0, 'revision', '', 0),
(581, 1, '2011-07-28 04:21:21', '2011-07-28 04:21:21', '<a href="http://sqlvn.com/wp-content/uploads/Responsibility.gif"><img class="alignnone size-full wp-image-382" title="Responsibility" src="http://sqlvn.com/wp-content/uploads/Responsibility.gif" alt="" width="300" height="218" /></a>\r\n\r\nĐọc nhiều bài báo về trách nhiệm của DBA đối với công việc, có nhiều quan điểm được đưa ra, khái quát những yếu tố chính DBA phải đảm bảo cho yêu cầu doanh nghiệp.  Nhưng hầu hết đều tập trung phân tích 4 yếu tố chính,  xin chia sẻ ra đây:<!--more-->\r\n\r\n<span style="color: #ff0000;"><strong>1. Bảo mật (Security)</strong></span>: Ai có quyền gì trong hệ thống, được xem những thông tin gì, được sử dụng những chức năng gì. Chế độ xác thực như thế nào? Các TCP port được sử dụng...DBA phải kiểm soát những vấn đề này.\r\n\r\n<span style="color: #ff0000;"><strong>2. Độ sẵn sàng cao (High Availability)</strong></span>: DBA phải đảm bảo database luôn sẵn sàng phục vụ khi có sự cố. Đây là trách nhiệm cơ bản của DBA. Trong SQL 2008 đã tích hợp sẵn một số giải pháp High Availability bao gồm <strong><span style="color: #008000;">Failover Clustering, Database Mirroring, Transaction Log Shipping</span></strong>. Tùy vào độ phức tạp của ứng dụng, cơ sở hạ tầng mà chọn giải pháp thích hợp.\r\n\r\n<span style="color: #ff0000;"><strong>3. Độ tin cậy (Reliability)</strong></span>: Hiệu năng của Database quá tồi, hay những sự cố hư hỏng phần cứng khi xảy ra không chỉ ảnh hưởng đến người dùng cuối, gián đoạn các hoạt động của doanh nghiệp mà còn hứa hẹn một thời gian làm việc vất vả của DBA để khắc phục các sự cố. Vì vậy DBA phải có kế hoạch để chẩn đoán và bảo trì hệ thống, phát hiện kịp thời các sự cố tiềm ẩn. Khi có kế hoạch thì phải kiểm thử các kế hoạch đó xem có hiệu quả hay không. Có nhiều công cụ cho DBA làm việc đó, ví dụ như <span style="color: #008000;"><strong>System Monitor, SQL Profiler, DMV</strong></span>…\r\n\r\n<span style="color: #ff0000;"><strong>4. Khả năng phục hồi (Recoverability)</strong></span>: Khi sự cố đã xảy ra, Database không thể tiếp tục làm việc, thì nó phải được phục hồi càng nhanh càng tốt với lượng dữ liệu bị mất là ít nhất. Vậy DBA phải có kế hoạch Backup và kiểm thử các bản Backup định kỳ.\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/DBAResponsibility.png"><img class="alignnone size-full wp-image-383" title="DBAResponsibility" src="http://sqlvn.com/wp-content/uploads/DBAResponsibility.png" alt="" width="631" height="340" /></a>\r\n\r\n<span style="color: #008000;"><strong>Nguồn</strong></span>: bài viết được thực hiện từ việc tham khảo các kiến thức từ Internet\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>\r\n&nbsp;', 'Trách nhiệm của Database Administrator (DBA)', '', 'inherit', 'open', 'open', '', '381-revision-11', '', '', '2011-07-28 04:21:21', '2011-07-28 04:21:21', '', 381, 'http://sqlvn.com/uncategorized/381-revision-11.html', 0, 'revision', '', 0),
(636, 1, '2011-07-30 16:10:39', '2011-07-30 16:10:39', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin của tất cả các database trong một Instance SQL Server. Ta phải quản trị Database này cẩn thận.\r\n\r\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs và một vài thông tin về replication như Log Shipping.\r\n\r\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như global và local temporary table.\r\n\r\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới.\r\n\r\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'inherit', 'open', 'open', '', '624-revision-2', '', '', '2011-07-30 16:10:39', '2011-07-30 16:10:39', '', 624, 'http://sqlvn.com/uncategorized/624-revision-2.html', 0, 'revision', '', 0),
(634, 1, '2011-07-31 14:46:04', '2011-07-31 14:46:04', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:</span></strong>\n<ul>\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\n</ul>\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\n\nSQL Server có 2 cơ chế xác thực User.\n\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\n<ul>\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\n</ul>\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\n<ul>\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\n</ul>\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\n<ul>\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\n</ul>\n<ul>\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\n</ul>\n<span style="color: #0000ff;"><strong>Giới thiệu Server-Level Roles:</strong></span>\n\nĐể dễ dàng quản lý các Permission trên Server, SQL Server cung cấp các Role. Role cũng tương tự như Groups trong hệ điều hành Windows.\n\nServer-Level Roles còn gọi là Fixed Server Roles. Nó cố định vì ta không thể tạo thêm Server-level roles.\n\nVí dụ về những Server-level roles tiêu biểu:\n<ul>\n <li><span style="color: #008000;">Sysadmin</span>: thành viên của sysadmin có thể thực hiện bất kỳ hành động nào trên Server.</li>\n <li><span style="color: #008000;">Serveradmin</span>: thành viên của serveradmin có thể thay đổi cấu hình và shut down Server.</li>\n <li><span style="color: #008000;">Securityadmin</span>: thành viên của Securityadmin có thể quản lý các login và thuộc tính của chúng.</li>\n</ul>\nĐể làm việc với các Server-Level Roles ta có thể dùng các commands, Views, Functions.\n\nVD:\n\n<span style="color: #008000;">sp_helpsrvrole</span>: trả về danh sách các Server-Level Roles\n\n<span style="color: #008000;">sp_helpsrvrolemember</span>: trả về thông tin các thành viên của một server-level role\n\nĐể biết thêm thông tin Server-level roles, bạn có thể tham khảo thêm trên MSDN.\n\nBài viết còn tiếp tục.\n<p style="text-align: right;">Quang Vinh\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-autosave', '', '', '2011-07-31 14:46:04', '2011-07-31 14:46:04', '', 629, 'http://sqlvn.com/uncategorized/629-autosave.html', 0, 'revision', '', 0),
(635, 1, '2011-07-31 04:58:41', '2011-07-31 04:58:41', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:</span></strong>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\r\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\r\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-5', '', '', '2011-07-31 04:58:41', '2011-07-31 04:58:41', '', 629, 'http://sqlvn.com/uncategorized/629-revision-5.html', 0, 'revision', '', 0),
(633, 1, '2011-07-31 04:58:18', '2011-07-31 04:58:18', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL dựa vào 3 thành phần chính:</span></strong>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\r\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\r\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-4', '', '', '2011-07-31 04:58:18', '2011-07-31 04:58:18', '', 629, 'http://sqlvn.com/uncategorized/629-revision-4.html', 0, 'revision', '', 0),
(631, 1, '2011-07-31 04:57:11', '2011-07-31 04:57:11', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL dựa vào 3 thành phần chính:</span></strong>\r\n\r\n<strong>Principals</strong>: các tài khỏan bảo mật\r\n\r\n<strong>Securables</strong>: các đối tựơng được bảo vệ\r\n\r\n<strong>Permissions</strong>: quyền sử dụng các Securables của Principals.\r\n\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-2', '', '', '2011-07-31 04:57:11', '2011-07-31 04:57:11', '', 629, 'http://sqlvn.com/uncategorized/629-revision-2.html', 0, 'revision', '', 0),
(632, 1, '2011-07-31 04:57:26', '2011-07-31 04:57:26', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL dựa vào 3 thành phần chính:</span></strong>\r\n\r\n<strong>Principals</strong>: các tài khỏan bảo mật\r\n\r\n<strong>Securables</strong>: các đối tựơng được bảo vệ\r\n\r\n<strong>Permissions</strong>: quyền sử dụng các Securables của Principals.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-3', '', '', '2011-07-31 04:57:26', '2011-07-31 04:57:26', '', 629, 'http://sqlvn.com/uncategorized/629-revision-3.html', 0, 'revision', '', 0),
(638, 1, '2011-07-31 05:03:54', '2011-07-31 05:03:54', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin cấu hình của tất cả các database trong một Instance SQL Server. Ta phải quản trị Database này cẩn thận.\r\n\r\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs và một vài thông tin về replication như Log Shipping.\r\n\r\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như Global và Local Temporary Table.\r\n\r\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới.\r\n\r\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'inherit', 'open', 'open', '', '624-revision-4', '', '', '2011-07-31 05:03:54', '2011-07-31 05:03:54', '', 624, 'http://sqlvn.com/uncategorized/624-revision-4.html', 0, 'revision', '', 0),
(639, 1, '2011-07-31 05:02:50', '2011-07-31 05:02:50', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:</span></strong>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\r\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\r\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-6', '', '', '2011-07-31 05:02:50', '2011-07-31 05:02:50', '', 629, 'http://sqlvn.com/uncategorized/629-revision-6.html', 0, 'revision', '', 0),
(637, 1, '2011-07-31 05:03:22', '2011-07-31 05:03:22', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin cấu hình của tất cả các database trong một Instance SQL Server. Ta phải quản trị Database này cẩn thận.\r\n\r\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs và một vài thông tin về replication như Log Shipping.\r\n\r\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như global và local temporary table.\r\n\r\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới.\r\n\r\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'inherit', 'open', 'open', '', '624-revision-3', '', '', '2011-07-31 05:03:22', '2011-07-31 05:03:22', '', 624, 'http://sqlvn.com/uncategorized/624-revision-3.html', 0, 'revision', '', 0),
(630, 1, '2011-07-31 04:57:00', '2011-07-31 04:57:00', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL dựa vào 3 thành phần chính:</span></strong>\n\n<strong>Principals</strong>: các tài khỏan bảo mật\n\n<strong>Securables</strong>: các đối tựơng được bảo vệ\n\n<strong>Permissions</strong>: quyền sử dụng các Securables của Principals.\n\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\n\nSQL Server có 2 cơ chế xác thực User.\n\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\n<ul>\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\n</ul>\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\n<ul>\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\n</ul>\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\n<ul>\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\n</ul>\n<ul>\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\n</ul>\nBài viết còn tiếp tục.\n<p style="text-align: right;">Quang Vinh\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision', '', '', '2011-07-31 04:57:00', '2011-07-31 04:57:00', '', 629, 'http://sqlvn.com/uncategorized/629-revision.html', 0, 'revision', '', 0),
(624, 1, '2011-07-30 16:10:39', '2011-07-30 16:10:39', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin về hệ thống SQL Server: Các tài khoản đăng nhập, cấu hình hệ thống, thông tin về các cơ sở dữ liệu đã tạo, các thủ tục hệ thống, các thủ tục do người dùng định nghĩa…Ta phải quản trị Database này cẩn thận, khi sửa đổi hệ thống thì cần Backup database Master.\r\n\r\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs, các cảnh báo lỗi và một vài thông tin về replication như Log Shipping...\r\n\r\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như Global và Local Temporary Table. Tempdb tự động khởi tạo lại khi SQL Server được khởi động lại.\r\n\r\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới. Khi ta tạo mới một cơ sở dữ liệu thì SQL Server lấy tất cả các mẫu (bao gồm Tables, Views,…) từ model database.\r\n\r\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User. Resource Database ta không thể thấy trong SQL Server Management Studio.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'publish', 'open', 'open', '', 'doi-net-ve-master-msdb-model-tempdb-va-resource-database', '', '', '2012-10-06 05:44:35', '2012-10-06 05:44:35', '', 0, 'http://sqlvn.com/?p=624', 0, 'post', '', 0),
(625, 1, '2011-07-30 16:09:59', '2011-07-30 16:09:59', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin của tất cả các database trong một Instance SQL Server. Ta phải quản trị Database này cẩn thận.\n\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs và một vài thông tin về replication như Log Shipping.\n\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như global và local temporary table.\n\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới.\n\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User.\n\nQuang', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'inherit', 'open', 'open', '', '624-revision', '', '', '2011-07-30 16:09:59', '2011-07-30 16:09:59', '', 624, 'http://sqlvn.com/uncategorized/624-revision.html', 0, 'revision', '', 0),
(626, 1, '2012-10-06 05:44:07', '2012-10-06 05:44:07', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin về hệ thống SQL Server: Các tài khoản đăng nhập, cấu hình hệ thống, thông tin về các cơ sở dữ liệu đã tạo, các thủ tục hệ thống, các thủ tục do người dùng định nghĩa…Ta phải quản trị Database này cẩn thận, khi sửa đổi hệ thống thì cần Backup database Master.\n\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs, các cảnh báo lỗi và một vài thông tin về replication như Log Shipping...\n\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như Global và Local Temporary Table. Tempdb tự động khởi tạo lại khi SQL Server được khởi động lại.\n\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới. Khi ta tạo mới một cơ sở dữ liệu thì SQL Server lấy tất cả các mẫu (bao gồm Tables, Views,…) từ model database.\n\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User. Resource Database ta không thể thấy\n<p style="text-align: right;">Quang Vinh\nmai.quangvinh@sqlvn.com</p>', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'inherit', 'open', 'open', '', '624-autosave', '', '', '2012-10-06 05:44:07', '2012-10-06 05:44:07', '', 624, 'http://sqlvn.com/uncategorized/624-autosave.html', 0, 'revision', '', 0),
(627, 1, '2011-07-30 16:17:48', '0000-00-00 00:00:00', '', 'Sao chép dữ liệu từ Table này sang Table khác', '', 'draft', 'open', 'open', '', '', '', '', '2011-07-30 16:17:48', '2011-07-30 16:17:48', '', 0, 'http://sqlvn.com/?p=627', 0, 'post', '', 0),
(628, 1, '2011-07-30 16:17:31', '2011-07-30 16:17:31', '', 'Auto Draft', '', 'inherit', 'open', 'open', '', '627-revision', '', '', '2011-07-30 16:17:31', '2011-07-30 16:17:31', '', 627, 'http://sqlvn.com/uncategorized/627-revision.html', 0, 'revision', '', 0),
(629, 1, '2011-07-31 04:57:11', '2011-07-31 04:57:11', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:</span></strong>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\r\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\r\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tưởng điều này và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này bằng 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu Server-Level Roles:</strong></span>\r\n\r\nĐể dễ dàng quản lý các Permission trên Server, SQL Server cung cấp các Role. Role cũng tương tự như Groups trong hệ điều hành Windows.\r\n\r\nServer-Level Roles còn gọi là Fixed Server Roles. Nó cố định vì ta không thể tạo thêm Server-level roles.\r\n\r\nVí dụ về những Server-level roles tiêu biểu:\r\n<ul>\r\n <li><span style="color: #008000;">Sysadmin</span>: thành viên của sysadmin có thể thực hiện bất kỳ hành động nào trên Server.</li>\r\n <li><span style="color: #008000;">Serveradmin</span>: thành viên của serveradmin có thể thay đổi cấu hình và shut down Server.</li>\r\n <li><span style="color: #008000;">Securityadmin</span>: thành viên của Securityadmin có thể quản lý các login và thuộc tính của chúng.</li>\r\n</ul>\r\nĐể làm việc với các Server-Level Roles ta có thể dùng các commands, Views, Functions.\r\n\r\nVD:\r\n\r\n<span style="color: #008000;">sp_helpsrvrole</span>: trả về danh sách các Server-Level Roles\r\n\r\n<span style="color: #008000;">sp_helpsrvrolemember</span>: trả về thông tin các thành viên của một server-level role\r\n\r\nĐể biết thêm thông tin Server-level roles, bạn có thể tham khảo thêm trên MSDN.\r\n\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sql.com</p>', 'Security trong SQL Server', '', 'publish', 'open', 'open', '', 'security-trong-sql-server', '', '', '2012-06-14 06:46:32', '2012-06-14 06:46:32', '', 0, 'http://sqlvn.com/?p=629', 0, 'post', '', 0),
(600, 1, '2011-07-28 07:34:08', '0000-00-00 00:00:00', 'http://sql-note.blogspot.com/2011/03/giai-quyet-van-e-loi-khong-ket-noi.html', 'Note', '', 'draft', 'open', 'open', '', '', '', '', '2011-07-28 07:34:08', '2011-07-28 07:34:08', '', 0, 'http://sqlvn.com/?p=600', 0, 'post', '', 0),
(601, 1, '2011-07-28 07:33:01', '2011-07-28 07:33:01', '', 'Note', '', 'inherit', 'open', 'open', '', '600-revision', '', '', '2011-07-28 07:33:01', '2011-07-28 07:33:01', '', 600, 'http://sqlvn.com/uncategorized/600-revision.html', 0, 'revision', '', 0),
(602, 1, '2011-07-25 16:12:39', '2011-07-25 16:12:39', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA:</strong></span>\r\nCó 2 cách bạn có thể xóa dữ liệu trong 1 table: dùng TRUNCATE và DELETE. Mặc dù cả 2 cách làm cùng 1 công việc, nhưng cách thức thì khác nhau. Có những lợi ích, hạn chế mà ta nên biết để quyết định dùng phương thức nào.<!--more-->\r\n\r\n<strong><span style="color: #0000ff;">II. GIẢI PHÁP:</span></strong>\r\n<p style="padding-left: 30px;"><strong>1. Xóa dữ liệu dùng TRUNCATE\r\n</strong></p>\r\n\r\n<ul>\r\n <li>TRUNCATE nhanh chóng xóa toàn bộ dữ liệu trong 1  table bằng cách thu hồi      không gian đĩa được cấp phát cho những  trang dữ liệu của table (SQL lưu dữ      liệu thành nhiều trang).</li>\r\n <li>Những       record bị xóa khi dùng TRUNCATE  không thể roll back, vì TRUNCATE  chỉ      log lại quá trình giải phóng không gian đĩa, điều này làm  TRUNCATE chạy      nhanh hơn DELETE.</li>\r\n <li>Hoàn      toàn không thể dùng ‘WHERE’ để giới hạn số dòng bị xóa, mà là tất cả số      dòng trong 1 bảng sẽ bị xóa.</li>\r\n <li>Lợi       ích của TRUNCATE là ngoài vệc xóa toàn bộ 1 table, nó còn reset lại  cột Identity      trở về giá trị ban đầu, và không gian lưu trữ được trả  về cho hệ thống. Ví      dụ bạn có 1 table với 1 cột Identity bắt đầu  từ 1 đến 100\r\n<ul>\r\n <li>Sau       khi dùng TRUNCATE, bạn insert 1 dòng mới, thì cột Indentity sẽ bắt       đầu từ 1.</li>\r\n <li>Còn       nếu bạn dùng DELETE thì cột Identity sẽ bắt đầu từ 101.</li>\r\n</ul>\r\n</li>\r\n <li>Ngoài      ra, nếu những table muốn xóa được cấu hình Replication hay Log Shipping,      bạn không thể dùng TRUNCATE.</li>\r\n <li>Nếu 1      table có khóa ngoại (Foreign key), bạn phải drop constraint, dùng lệnh TRUNCATE, rồi kéo lại Relationship cho table đó.<strong></strong></li>\r\n</ul>\r\n<p style="padding-left: 30px;"><strong>2. Xóa dữ liệu dùng DELETE\r\n</strong></p>\r\n\r\n<ul>\r\n <li>Dùng DELETE xóa nhiều dòng cùng lúc, từng dòng bị xóa sẽ được ghi vào Transaction log. Điều này làm DELETE chậm hơn TRUNCATE.</li>\r\n <li>Mặc dù tiêu tốn nhiều resource và lock, những transaction này có thể được Roll back nếu cần thiết.</li>\r\n <li>Ta có thể dùng ‘WHERE’ để giới hạn số dòng bị xóa.</li>\r\n <li>Không như  TRUNCATE, nếu table có khóa ngoại, bạn vẫn xóa được dễ dàng.</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>III. THỰC HÀNH</strong></span>\r\n\r\n<strong>Bước 1</strong>: Tạo 1 bảng ''<strong>tblTest</strong>'' và insert vào 20 dòng\r\n<img class="alignnone size-full wp-image-57" title="TruncatevsDelete_Insert20Record" src="http://sqlvn.com/wp-content/uploads/TruncatevsDelete_Insert20Record.jpg" alt="" width="296" height="593" />\r\n\r\n<strong>Bước 2:</strong> Xóa tất cả số dòng của bảng ''<strong>tblTest</strong>'' và chạy tiếp câu lệnh dùng <strong>sp_spaceused</strong>. Ta thấy số dòng còn lại là 0, nhưng không gian đĩa vẫn được cấp phát cho bảng ''<strong>tblTest</strong>'' là <strong>24KB</strong>.\r\n<img class="alignnone size-full wp-image-64" title="TruncatevsDelete_UseDelete" src="http://sqlvn.com/wp-content/uploads/TruncatevsDelete_UseDelete1.jpg" alt="" width="346" height="131" />\r\n\r\n<strong>Bước 3:</strong> Bây giờ lập lại bước 1 tạo 20 dòng, và xóa dữ liệu, nhưng lần này dùng <strong>TRUNCATE</strong>, ta thấy tất cả số đòng cũng bị xóa, và không gian đĩa được giải phóng trả về cho hệ thống.\r\n<img class="alignnone size-full wp-image-61" title="TruncatevsDelete_UseTruncate" src="http://sqlvn.com/wp-content/uploads/TruncatevsDelete_UseTruncate.jpg" alt="" width="340" height="118" />\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xóa table dùng Truncate và Delete', '', 'inherit', 'open', 'open', '', '46-revision-21', '', '', '2011-07-25 16:12:39', '2011-07-25 16:12:39', '', 46, 'http://sqlvn.com/uncategorized/46-revision-21.html', 0, 'revision', '', 0),
(603, 1, '2011-07-30 15:22:18', '0000-00-00 00:00:00', 'http://sqlserverperformance.idera.com/tsql-optimization/finding-nonexistent-records-hurry/', 'coi them', '', 'draft', 'open', 'open', '', '', '', '', '2011-07-30 15:22:18', '2011-07-30 15:22:18', '', 0, 'http://sqlvn.com/?p=603', 0, 'post', '', 0),
(604, 1, '2011-07-28 08:05:32', '2011-07-28 08:05:32', '', 'Auto Draft', '', 'inherit', 'open', 'open', '', '603-revision', '', '', '2011-07-28 08:05:32', '2011-07-28 08:05:32', '', 603, 'http://sqlvn.com/uncategorized/603-revision.html', 0, 'revision', '', 0),
(605, 1, '2011-07-30 15:12:53', '0000-00-00 00:00:00', 'http://vnpro.org/forum/showthread.php/35803-Gi%E1%BA%A3i-ph%C3%A1p-thi%E1%BA%BFt-l%E1%BA%ADp-SQL-Server-lu%C3%B4n-s%E1%BA%B5n-s%C3%A0ng', 'dsg', '', 'draft', 'open', 'open', '', '', '', '', '2011-07-30 15:12:53', '2011-07-30 15:12:53', '', 0, 'http://sqlvn.com/?p=605', 0, 'post', '', 0),
(606, 1, '2011-07-28 08:28:52', '2011-07-28 08:28:52', '', 'Auto Draft', '', 'inherit', 'open', 'open', '', '605-revision', '', '', '2011-07-28 08:28:52', '2011-07-28 08:28:52', '', 605, 'http://sqlvn.com/uncategorized/605-revision.html', 0, 'revision', '', 0);
INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES
(623, 1, '2011-07-30 15:50:44', '2011-07-30 15:50:44', '<strong><span style="color: #0000ff;">SP là gì?</span></strong>\r\n\r\nSP (Stored Procedure) là tên được đặt cho một nhóm các mệnh đề SQL được tạo ra và lưu trong server database.\r\n\r\nSP cho phép truyền tham số, và có thể được gọi bởi nhiều Client qua mạng với các tham số khác nhau. Khi SP bị thay đổi, tất cả Client sẽ tự động nhận được bản mới, vì SP được lưu ở Server, chứ không phải Client.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Lợi ích của SP</strong></span>:\r\n<ul>\r\n <li>Giảm lưu lượng dữ liệu được truyền qua mạng và tăng hiệu năng (Performance). Client chỉ việc truyền tên SP và tham số (nếu có) thay vì gửi những câu SQL nhiều dòng dài ngoằng.</li>\r\n <li>Có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu của Database.</li>\r\n <li>Đối với những ứng dụng lớn kết nối với cơ sở dữ liệu, ta nên dùng SP, tôi liệt kê một vài lợi ích cụ thể như sau:\r\n<ul>\r\n <li><span style="color: #008000;">Dễ bảo trì</span>, việc thay đổi SP hoàn toàn không ảnh hưởng đến người dùng cuối, trong suốt với họ.</li>\r\n <li><span style="color: #008000;">Chuyên biệt công việc</span>, ví dụ những Developer giỏi lập trình C# thì chuyên tâm lập trình C#, còn những Developer giỏi lập trình T-SQL thì chuyên viết SQL từ căn bản đến phức tạp.</li>\r\n <li><span style="color: #008000;">Tăng khả năng bảo mật</span>. Đối với những ứng dụng mà ta không muốn cho Developer biết thông tin về nghiệp vụ bên trong thì ta viết SP, Developer chỉ gọi SP sử dụng mà không biết ta xử lý gì bên trong.</li>\r\n</ul>\r\n</li>\r\n <li>VD: sp_spaceused, sp_renameddb...</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>View là gì?</strong></span>\r\n\r\nView có thể được xem như một Table ảo mà dữ liệu của nó được lấy ra  từ một câu truy vấn, có chứa cột và dữ liệu từ một hay nhiều Table khác  nhau, hay từ những View khác nhau. Ðối với lập trình viên thì View không  khác chi so với Table và có thể đặt ở vị trí của Table trong các câu  lệnh SQL.\r\n\r\nÐặc điểm của View là ta có thể join dữ liệu từ nhiều Table và trả về  một tập kết quả đơn. Ngoài ra ta có thể thao tác dữ liệu trước khi trả  về cho user bằng cách dùng các lệnh SQL như where, case...<img title="More..." src="http://sqlvn.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />\r\n<blockquote>Lưu ý: View đơn giản là 1 Table ảo, nó không được lưu trữ lễn đĩa về mặt vật lý như Table thông thường.</blockquote>\r\n<span style="color: #0000ff;"><strong>Lợi ích của View.</strong></span>\r\n<ul>\r\n <li>Có khả năng tăng tính bảo mật. View giúp ta che giấu cấu trúc của  câu truy vấn bên trong. Sau khi tạo xong View ta có thể Insert, Delete,  Update như 1 Table bình thường.</li>\r\n <li>Giảm độ phức tạp. Ví dụ như User chỉ muốn xem thông tin của một vài  cột với một điều kiện nào đó, View cung cấp đúng dữ liệu họ muốn mà  không có dữ liệu thừa.</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Trigger là gì?</strong></span>\r\n\r\nTrigger có thể hiểu đơn giản là một thủ tục SQL được thực thi ở phía  Server khi có một sự kiện xảy ra như Insert, Delete, hay Update. Tuy  nhiên khác với Stored Procedure, Trigger hoàn toàn không có tham số.  Chúng ta không thể gọi thực hiện trực tiếp Trigger bằng lệnh  EXECUTE  như Stored Procedure hoặc bằng bất kỳ một lệnh nào khác, Thay vào  đó  trigger sẽ được thực hiện một cách tự động.\r\n\r\nTrigger cũng có thể gọi thực thi Stored Procedure.\r\n\r\nTrigger được lưu trữ và quản lý trong Server Database.\r\n\r\nTrigger được dùng trong trường hợp ta muốn kiểm tra các ràng buộc toàn vẹn trong Database.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Stored Procedure, View, Trigger là gì?', '', 'inherit', 'open', 'open', '', '571-revision-9', '', '', '2011-07-30 15:50:44', '2011-07-30 15:50:44', '', 571, 'http://sqlvn.com/uncategorized/571-revision-9.html', 0, 'revision', '', 0),
(621, 1, '2011-07-30 15:46:27', '2011-07-30 15:46:27', 'Function được sử dụng ở bất cứ nơi đâu trong mệnh đề SQL như SELECT/WHERE/HAVING trong khi Stored Procedure thì không thể.\r\n\r\nĐối với những Function trả về những Table, ta có thể Join nó với các Table hay View khác.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>\r\n<p style="text-align: right;">&nbsp;</p>', 'Sự khác biệt giữa Function và Stored Procedure.', '', 'inherit', 'open', 'open', '', '611-revision-3', '', '', '2011-07-30 15:46:27', '2011-07-30 15:46:27', '', 611, 'http://sqlvn.com/uncategorized/611-revision-3.html', 0, 'revision', '', 0),
(622, 1, '2011-07-30 15:52:39', '2011-07-30 15:52:39', 'Function được sử dụng ở bất cứ nơi đâu trong mệnh đề SQL như SELECT/WHERE/HAVING trong khi Stored Procedure thì không thể.\r\n\r\nĐối với những Function trả về những Table, ta có thể Join nó với các Table hay View khác.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>\r\n<p style="text-align: right;">&nbsp;</p>', 'Sự khác biệt giữa Function và Stored Procedure.', '', 'inherit', 'open', 'open', '', '611-revision-4', '', '', '2011-07-30 15:52:39', '2011-07-30 15:52:39', '', 611, 'http://sqlvn.com/uncategorized/611-revision-4.html', 0, 'revision', '', 0),
(611, 1, '2011-07-30 15:44:38', '2011-07-30 15:44:38', 'Function được sử dụng ở bất cứ nơi đâu trong mệnh đề SQL như SELECT/WHERE/HAVING trong khi Stored Procedure thì không thể.\r\n\r\nĐối với những Function trả về những Table, ta có thể Join nó với các Table hay View khác.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>\r\n<p style="text-align: right;">&nbsp;</p>', 'Sự khác biệt giữa Function và Stored Procedure.', '', 'publish', 'open', 'open', '', 'su-khac-biet-giua-function-va-stored-procedure', '', '', '2012-06-11 08:00:04', '2012-06-11 08:00:04', '', 0, 'http://sqlvn.com/?p=611', 0, 'post', '', 1),
(612, 1, '2011-07-30 15:43:50', '2011-07-30 15:43:50', 'Function được sử dụng ở bất cứ nơi đâu trong mệnh đề SQL như SELECT/WHERE/HAVING trong khi Stored Procedure thì không thể.\n\nĐối với những Function trả về những Table, ta có thể Join nó với các Table hay View khác', 'Sự khác biệt giữa Function và Stored Procedure.', '', 'inherit', 'open', 'open', '', '611-revision', '', '', '2011-07-30 15:43:50', '2011-07-30 15:43:50', '', 611, 'http://sqlvn.com/uncategorized/611-revision.html', 0, 'revision', '', 0),
(613, 1, '2011-08-13 05:54:55', '2011-08-13 05:54:55', 'Function được sử dụng ở bất cứ nơi đâu trong mệnh đề SQL như SELECT/WHERE/HAVING trong khi Stored Procedure thì không thể.\n\nĐối với những Function trả về những Table, ta có thể Join nó với các Table hay View khác.\n<p style="text-align: right;">Quang Vinh\nmai.quangvinh@sqlvn.com</p>\n<p style="text-align: right;">&nbsp;</p>', 'Sự khác biệt giữa Function và Stored Procedure.', '', 'inherit', 'open', 'open', '', '611-autosave', '', '', '2011-08-13 05:54:55', '2011-08-13 05:54:55', '', 611, 'http://sqlvn.com/uncategorized/611-autosave.html', 0, 'revision', '', 0),
(614, 1, '2011-07-30 15:44:38', '2011-07-30 15:44:38', 'Function được sử dụng ở bất cứ nơi đâu trong mệnh đề SQL như SELECT/WHERE/HAVING trong khi Stored Procedure thì không thể.\r\n\r\nĐối với những Function trả về những Table, ta có thể Join nó với các Table hay View khác.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>\r\n<p style="text-align: right;">&nbsp;</p>', 'Sự khác biệt giữa Function và Stored Procedure.', '', 'inherit', 'open', 'open', '', '611-revision-2', '', '', '2011-07-30 15:44:38', '2011-07-30 15:44:38', '', 611, 'http://sqlvn.com/uncategorized/611-revision-2.html', 0, 'revision', '', 0),
(615, 1, '2011-07-28 04:04:29', '2011-07-28 04:04:29', '<strong><span style="color: #0000ff;">SP là gì?</span></strong>\r\n\r\nSP (Stored Procedure) là tên được đặt cho một nhóm các mệnh đề SQL được tạo ra và lưu trong server database.\r\n\r\nSP cho phép truyền tham số, và có thể được gọi bởi nhiều Client qua mạng với các tham số khác nhau. Khi SP bị thay đổi, tất cả Client sẽ tự động nhận được bản mới, vì SP được lưu ở Server, chứ không phải Client.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Lợi ích của SP</strong></span>:\r\n<ul>\r\n <li>Giảm lưu lượng dữ liệu được truyền qua mạng và tăng hiệu năng (Performance). Client chỉ việc truyền tên SP và tham số (nếu có) thay vì gửi những câu SQL nhiều dòng dài ngoằng.</li>\r\n <li>Có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu của Database.</li>\r\n <li>Đối với những ứng dụng lớn kết nối với cơ sở dữ liệu, ta nên dùng SP, tôi liệt kê một vài lợi ích cụ thể như sau:\r\n<ul>\r\n <li><span style="color: #008000;">Dễ bảo trì</span>, việc thay đổi SP hoàn toàn không ảnh hưởng đến người dùng cuối, trong suốt với họ.</li>\r\n <li><span style="color: #008000;">Chuyên biệt công việc</span>, ví dụ những Developer giỏi lập trình C# thì chuyên tâm lập trình C#, còn những Developer giỏi lập trình T-SQL thì chuyên viết SQL từ căn bản đến phức tạp.</li>\r\n <li><span style="color: #008000;">Tăng khả năng bảo mật</span>. Đối với những ứng dụng mà ta không muốn cho Developer biết thông tin về nghiệp vụ bên trong thì ta viết SP, Developer chỉ gọi SP sử dụng mà không biết ta xử lý gì bên trong.</li>\r\n</ul>\r\n</li>\r\n <li>VD: sp_spaceused, sp_renameddb...</li>\r\n</ul>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Stored Procedure là gì?', '', 'inherit', 'open', 'open', '', '571-revision-5', '', '', '2011-07-28 04:04:29', '2011-07-28 04:04:29', '', 571, 'http://sqlvn.com/uncategorized/571-revision-5.html', 0, 'revision', '', 0),
(616, 1, '2011-07-30 15:48:04', '2011-07-30 15:48:04', '<strong><span style="color: #0000ff;">SP là gì?</span></strong>\r\n\r\nSP (Stored Procedure) là tên được đặt cho một nhóm các mệnh đề SQL được tạo ra và lưu trong server database.\r\n\r\nSP cho phép truyền tham số, và có thể được gọi bởi nhiều Client qua mạng với các tham số khác nhau. Khi SP bị thay đổi, tất cả Client sẽ tự động nhận được bản mới, vì SP được lưu ở Server, chứ không phải Client.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Lợi ích của SP</strong></span>:\r\n<ul>\r\n <li>Giảm lưu lượng dữ liệu được truyền qua mạng và tăng hiệu năng (Performance). Client chỉ việc truyền tên SP và tham số (nếu có) thay vì gửi những câu SQL nhiều dòng dài ngoằng.</li>\r\n <li>Có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu của Database.</li>\r\n <li>Đối với những ứng dụng lớn kết nối với cơ sở dữ liệu, ta nên dùng SP, tôi liệt kê một vài lợi ích cụ thể như sau:\r\n<ul>\r\n <li><span style="color: #008000;">Dễ bảo trì</span>, việc thay đổi SP hoàn toàn không ảnh hưởng đến người dùng cuối, trong suốt với họ.</li>\r\n <li><span style="color: #008000;">Chuyên biệt công việc</span>, ví dụ những Developer giỏi lập trình C# thì chuyên tâm lập trình C#, còn những Developer giỏi lập trình T-SQL thì chuyên viết SQL từ căn bản đến phức tạp.</li>\r\n <li><span style="color: #008000;">Tăng khả năng bảo mật</span>. Đối với những ứng dụng mà ta không muốn cho Developer biết thông tin về nghiệp vụ bên trong thì ta viết SP, Developer chỉ gọi SP sử dụng mà không biết ta xử lý gì bên trong.</li>\r\n</ul>\r\n</li>\r\n <li>VD: sp_spaceused, sp_renameddb...</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>View là gì?</strong></span>\r\n\r\nView có thể được xem như một Table ảo mà dữ liệu của nó được lấy ra  từ một câu truy vấn, có chứa cột và dữ liệu từ một hay nhiều Table khác  nhau, hay từ những View khác nhau. Ðối với lập trình viên thì View không  khác chi so với Table và có thể đặt ở vị trí của Table trong các câu  lệnh SQL.\r\n\r\nÐặc điểm của View là ta có thể join dữ liệu từ nhiều Table và trả về  một tập kết quả đơn. Ngoài ra ta có thể thao tác dữ liệu trước khi trả  về cho user bằng cách dùng các lệnh SQL như where, case...<img title="More..." src="http://sqlvn.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />\r\n<blockquote>Lưu ý: View đơn giản là 1 Table ảo, nó không được lưu trữ lễn đĩa về mặt vật lý như Table thông thường.</blockquote>\r\n<span style="color: #0000ff;"><strong>Lợi ích của View.</strong></span>\r\n<ul>\r\n <li>Có khả năng tăng tính bảo mật. View giúp ta che giấu cấu trúc của  câu truy vấn bên trong. Sau khi tạo xong View ta có thể Insert, Delete,  Update như 1 Table bình thường.</li>\r\n <li>Giảm độ phức tạp. Ví dụ như User chỉ muốn xem thông tin của một vài  cột với một điều kiện nào đó, View cung cấp đúng dữ liệu họ muốn mà  không có dữ liệu thừa.</li>\r\n</ul>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Stored Procedure là gì?', '', 'inherit', 'open', 'open', '', '571-revision-6', '', '', '2011-07-30 15:48:04', '2011-07-30 15:48:04', '', 571, 'http://sqlvn.com/uncategorized/571-revision-6.html', 0, 'revision', '', 0),
(617, 1, '2011-07-30 15:48:13', '2011-07-30 15:48:13', '<strong><span style="color: #0000ff;">SP là gì?</span></strong>\r\n\r\nSP (Stored Procedure) là tên được đặt cho một nhóm các mệnh đề SQL được tạo ra và lưu trong server database.\r\n\r\nSP cho phép truyền tham số, và có thể được gọi bởi nhiều Client qua mạng với các tham số khác nhau. Khi SP bị thay đổi, tất cả Client sẽ tự động nhận được bản mới, vì SP được lưu ở Server, chứ không phải Client.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Lợi ích của SP</strong></span>:\r\n<ul>\r\n <li>Giảm lưu lượng dữ liệu được truyền qua mạng và tăng hiệu năng (Performance). Client chỉ việc truyền tên SP và tham số (nếu có) thay vì gửi những câu SQL nhiều dòng dài ngoằng.</li>\r\n <li>Có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu của Database.</li>\r\n <li>Đối với những ứng dụng lớn kết nối với cơ sở dữ liệu, ta nên dùng SP, tôi liệt kê một vài lợi ích cụ thể như sau:\r\n<ul>\r\n <li><span style="color: #008000;">Dễ bảo trì</span>, việc thay đổi SP hoàn toàn không ảnh hưởng đến người dùng cuối, trong suốt với họ.</li>\r\n <li><span style="color: #008000;">Chuyên biệt công việc</span>, ví dụ những Developer giỏi lập trình C# thì chuyên tâm lập trình C#, còn những Developer giỏi lập trình T-SQL thì chuyên viết SQL từ căn bản đến phức tạp.</li>\r\n <li><span style="color: #008000;">Tăng khả năng bảo mật</span>. Đối với những ứng dụng mà ta không muốn cho Developer biết thông tin về nghiệp vụ bên trong thì ta viết SP, Developer chỉ gọi SP sử dụng mà không biết ta xử lý gì bên trong.</li>\r\n</ul>\r\n</li>\r\n <li>VD: sp_spaceused, sp_renameddb...</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>View là gì?</strong></span>\r\n\r\nView có thể được xem như một Table ảo mà dữ liệu của nó được lấy ra  từ một câu truy vấn, có chứa cột và dữ liệu từ một hay nhiều Table khác  nhau, hay từ những View khác nhau. Ðối với lập trình viên thì View không  khác chi so với Table và có thể đặt ở vị trí của Table trong các câu  lệnh SQL.\r\n\r\nÐặc điểm của View là ta có thể join dữ liệu từ nhiều Table và trả về  một tập kết quả đơn. Ngoài ra ta có thể thao tác dữ liệu trước khi trả  về cho user bằng cách dùng các lệnh SQL như where, case...<img title="More..." src="http://sqlvn.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />\r\n<blockquote>Lưu ý: View đơn giản là 1 Table ảo, nó không được lưu trữ lễn đĩa về mặt vật lý như Table thông thường.</blockquote>\r\n<span style="color: #0000ff;"><strong>Lợi ích của View.</strong></span>\r\n<ul>\r\n <li>Có khả năng tăng tính bảo mật. View giúp ta che giấu cấu trúc của  câu truy vấn bên trong. Sau khi tạo xong View ta có thể Insert, Delete,  Update như 1 Table bình thường.</li>\r\n <li>Giảm độ phức tạp. Ví dụ như User chỉ muốn xem thông tin của một vài  cột với một điều kiện nào đó, View cung cấp đúng dữ liệu họ muốn mà  không có dữ liệu thừa.</li>\r\n</ul>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Stored Procedure, View là gì?', '', 'inherit', 'open', 'open', '', '571-revision-7', '', '', '2011-07-30 15:48:13', '2011-07-30 15:48:13', '', 571, 'http://sqlvn.com/uncategorized/571-revision-7.html', 0, 'revision', '', 0),
(618, 1, '2011-07-30 15:48:57', '2011-07-30 15:48:57', '<strong><span style="color: #0000ff;">SP là gì?</span></strong>\r\n\r\nSP (Stored Procedure) là tên được đặt cho một nhóm các mệnh đề SQL được tạo ra và lưu trong server database.\r\n\r\nSP cho phép truyền tham số, và có thể được gọi bởi nhiều Client qua mạng với các tham số khác nhau. Khi SP bị thay đổi, tất cả Client sẽ tự động nhận được bản mới, vì SP được lưu ở Server, chứ không phải Client.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Lợi ích của SP</strong></span>:\r\n<ul>\r\n <li>Giảm lưu lượng dữ liệu được truyền qua mạng và tăng hiệu năng (Performance). Client chỉ việc truyền tên SP và tham số (nếu có) thay vì gửi những câu SQL nhiều dòng dài ngoằng.</li>\r\n <li>Có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu của Database.</li>\r\n <li>Đối với những ứng dụng lớn kết nối với cơ sở dữ liệu, ta nên dùng SP, tôi liệt kê một vài lợi ích cụ thể như sau:\r\n<ul>\r\n <li><span style="color: #008000;">Dễ bảo trì</span>, việc thay đổi SP hoàn toàn không ảnh hưởng đến người dùng cuối, trong suốt với họ.</li>\r\n <li><span style="color: #008000;">Chuyên biệt công việc</span>, ví dụ những Developer giỏi lập trình C# thì chuyên tâm lập trình C#, còn những Developer giỏi lập trình T-SQL thì chuyên viết SQL từ căn bản đến phức tạp.</li>\r\n <li><span style="color: #008000;">Tăng khả năng bảo mật</span>. Đối với những ứng dụng mà ta không muốn cho Developer biết thông tin về nghiệp vụ bên trong thì ta viết SP, Developer chỉ gọi SP sử dụng mà không biết ta xử lý gì bên trong.</li>\r\n</ul>\r\n</li>\r\n <li>VD: sp_spaceused, sp_renameddb...</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>View là gì?</strong></span>\r\n\r\nView có thể được xem như một Table ảo mà dữ liệu của nó được lấy ra  từ một câu truy vấn, có chứa cột và dữ liệu từ một hay nhiều Table khác  nhau, hay từ những View khác nhau. Ðối với lập trình viên thì View không  khác chi so với Table và có thể đặt ở vị trí của Table trong các câu  lệnh SQL.\r\n\r\nÐặc điểm của View là ta có thể join dữ liệu từ nhiều Table và trả về  một tập kết quả đơn. Ngoài ra ta có thể thao tác dữ liệu trước khi trả  về cho user bằng cách dùng các lệnh SQL như where, case...<img title="More..." src="http://sqlvn.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />\r\n<blockquote>Lưu ý: View đơn giản là 1 Table ảo, nó không được lưu trữ lễn đĩa về mặt vật lý như Table thông thường.</blockquote>\r\n<span style="color: #0000ff;"><strong>Lợi ích của View.</strong></span>\r\n<ul>\r\n <li>Có khả năng tăng tính bảo mật. View giúp ta che giấu cấu trúc của  câu truy vấn bên trong. Sau khi tạo xong View ta có thể Insert, Delete,  Update như 1 Table bình thường.</li>\r\n <li>Giảm độ phức tạp. Ví dụ như User chỉ muốn xem thông tin của một vài  cột với một điều kiện nào đó, View cung cấp đúng dữ liệu họ muốn mà  không có dữ liệu thừa.</li>\r\n</ul>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Stored Procedure, View là gì?', '', 'inherit', 'open', 'open', '', '571-revision-8', '', '', '2011-07-30 15:48:57', '2011-07-30 15:48:57', '', 571, 'http://sqlvn.com/uncategorized/571-revision-8.html', 0, 'revision', '', 0),
(640, 1, '2011-07-31 14:19:35', '2011-07-31 14:19:35', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:</span></strong>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\r\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\r\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-7', '', '', '2011-07-31 14:19:35', '2011-07-31 14:19:35', '', 629, 'http://sqlvn.com/uncategorized/629-revision-7.html', 0, 'revision', '', 0),
(641, 1, '2011-07-31 14:37:53', '2011-07-31 14:37:53', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:</span></strong>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\r\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\r\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu Server-Level Roles:</strong></span>\r\n\r\nĐể dễ dàng quản lý các Permission trên Server, SQL Server cung cấp các Role. Role cũng tương tự như Groups trong hệ điều hành Windows.\r\n\r\nServer-Level Roles còn gọi là Fixed Server Roles. Nó cố định vì ta không thể tạo thêm Server-level roles.\r\n\r\nVí dụ về những Server-level roles tiêu biểu:\r\n<ul>\r\n <li><span style="color: #008000;">Sysadmin</span>: thành viên của sysadmin có thể thực hiện bất kỳ hành động nào trên Server.</li>\r\n <li><span style="color: #008000;">Serveradmin</span>: thành viên của serveradmin có thể thay đổi cấu hình và shut down Server.</li>\r\n <li><span style="color: #008000;">Securityadmin</span>: thành viên của Securityadmin có thể quản lý các login và thuộc tính của chúng.</li>\r\n</ul>\r\nĐể làm việc với các Server-Level Roles ta có thể dùng các commands, Views, Functions.\r\n\r\nVD:\r\n\r\n<span style="color: #008000;">sp_helpsrvrole</span>: trả về danh sách các Server-Level Roles\r\n\r\n<span style="color: #008000;">sp_helpsrvrolemember</span>: trả về thông tin các thành viên của một server-level role\r\n\r\nĐể biết thêm thông tin Server-level roles, bạn có thể tham khảo thêm trên MSDN.\r\n\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-8', '', '', '2011-07-31 14:37:53', '2011-07-31 14:37:53', '', 629, 'http://sqlvn.com/uncategorized/629-revision-8.html', 0, 'revision', '', 0),
(642, 1, '2011-07-31 15:06:56', '0000-00-00 00:00:00', 'http://www.scribd.com/doc/54024529/111/IV-Vai-Tro-C%E1%BB%A7a-User-Trong-SQL-Server', 'can doc ngay', '', 'draft', 'open', 'open', '', '', '', '', '2011-07-31 15:06:56', '2011-07-31 15:06:56', '', 0, 'http://sqlvn.com/?p=642', 0, 'post', '', 0),
(643, 1, '2011-07-31 15:05:32', '2011-07-31 15:05:32', '', 'Auto Draft', '', 'inherit', 'open', 'open', '', '642-revision', '', '', '2011-07-31 15:05:32', '2011-07-31 15:05:32', '', 642, 'http://sqlvn.com/uncategorized/642-revision.html', 0, 'revision', '', 0),
(644, 1, '2011-07-31 05:03:58', '2011-07-31 05:03:58', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin cấu hình của tất cả các database trong một Instance SQL Server. Ta phải quản trị Database này cẩn thận.\r\n\r\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs và một vài thông tin về replication như Log Shipping.\r\n\r\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như Global và Local Temporary Table.\r\n\r\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới.\r\n\r\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'inherit', 'open', 'open', '', '624-revision-5', '', '', '2011-07-31 05:03:58', '2011-07-31 05:03:58', '', 624, 'http://sqlvn.com/uncategorized/624-revision-5.html', 0, 'revision', '', 0),
(645, 1, '2011-08-01 02:49:04', '2011-08-01 02:49:04', '<span style="color: #0000ff;"><strong>Master database</strong></span>: chứa thông tin về hệ thống SQL Server: Các tài khoản đăng nhập, cấu hình hệ thống, thông tin về các cơ sở dữ liệu đã tạo, các thủ tục hệ thống, các thủ tục do người dùng định nghĩa…Ta phải quản trị Database này cẩn thận, khi sửa đổi hệ thống thì cần Backup database Master.\r\n\r\n<span style="color: #0000ff;"><strong>Msdb database</strong></span> chứa thông tin về những bản backup của Database, thông tin về SQL Agent, SQL Server Jobs, các cảnh báo lỗi và một vài thông tin về replication như Log Shipping...\r\n\r\n<span style="color: #0000ff;"><strong>Tempdb</strong></span> database chứa các đối tượng tạm thời như Global và Local Temporary Table. Tempdb tự động khởi tạo lại khi SQL Server được khởi động lại.\r\n\r\n<span style="color: #0000ff;"><strong>Model database</strong></span>: đây là một Database template khi ta tạo các Database mới. Khi ta tạo mới một cơ sở dữ liệu thì SQL Server lấy tất cả các mẫu (bao gồm Tables, Views,…) từ model database.\r\n\r\n<span style="color: #0000ff;"><strong>Resource Database</strong></span>: đây là một Database chỉ đọc (read-only) chứa thông tin về các đối tượng hệ thống của SQL Server. Database này không chứa thông tin hay các metadata của User.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Đôi nét về Master, msdb, model, tempdb và resource database', '', 'inherit', 'open', 'open', '', '624-revision-6', '', '', '2011-08-01 02:49:04', '2011-08-01 02:49:04', '', 624, 'http://sqlvn.com/uncategorized/624-revision-6.html', 0, 'revision', '', 0),
(646, 1, '2011-07-31 14:45:02', '2011-07-31 14:45:02', '<strong><span style="color: #0000ff;">Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:</span></strong>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Principals</strong></span>: các tài khỏan bảo mật</li>\r\n <li><span style="color: #008000;"><strong>Securables</strong></span>: các đối tựơng được bảo vệ</li>\r\n <li><span style="color: #008000;"><strong>Permissions</strong></span>: quyền sử dụng các Securables của Principals.<!--more--></li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu SQL Server Authentication (Chế độ xác thực)</strong></span>\r\n\r\nSQL Server có 2 cơ chế xác thực User.\r\n\r\nSQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>SQL Server Authentication</strong></span>: Đây là cơ chế xác thực chuẩn của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.</li>\r\n</ul>\r\nĐiểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Authentication</strong></span>: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tửơng điều nay và cung cấp quyền truy cập cho các tài khỏan Windows.</li>\r\n</ul>\r\nDBA có thể cấu hình những chế độ xác thực này trong 2 cách:\r\n<ul>\r\n <li><strong><span style="color: #008000;">Mixed Security</span></strong>: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.</li>\r\n</ul>\r\n<ul>\r\n <li><span style="color: #008000;"><strong>Windows Only</strong></span>: Chỉ những login có quyền trong Windows mới được đăng nhập.</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Giới thiệu Server-Level Roles:</strong></span>\r\n\r\nĐể dễ dàng quản lý các Permission trên Server, SQL Server cung cấp các Role. Role cũng tương tự như Groups trong hệ điều hành Windows.\r\n\r\nServer-Level Roles còn gọi là Fixed Server Roles. Nó cố định vì ta không thể tạo thêm Server-level roles.\r\n\r\nVí dụ về những Server-level roles tiêu biểu:\r\n<ul>\r\n <li><span style="color: #008000;">Sysadmin</span>: thành viên của sysadmin có thể thực hiện bất kỳ hành động nào trên Server.</li>\r\n <li><span style="color: #008000;">Serveradmin</span>: thành viên của serveradmin có thể thay đổi cấu hình và shut down Server.</li>\r\n <li><span style="color: #008000;">Securityadmin</span>: thành viên của Securityadmin có thể quản lý các login và thuộc tính của chúng.</li>\r\n</ul>\r\nĐể làm việc với các Server-Level Roles ta có thể dùng các commands, Views, Functions.\r\n\r\nVD:\r\n\r\n<span style="color: #008000;">sp_helpsrvrole</span>: trả về danh sách các Server-Level Roles\r\n\r\n<span style="color: #008000;">sp_helpsrvrolemember</span>: trả về thông tin các thành viên của một server-level role\r\n\r\nĐể biết thêm thông tin Server-level roles, bạn có thể tham khảo thêm trên MSDN.\r\n\r\nBài viết còn tiếp tục.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Security trong SQL Server', '', 'inherit', 'open', 'open', '', '629-revision-9', '', '', '2011-07-31 14:45:02', '2011-07-31 14:45:02', '', 629, 'http://sqlvn.com/uncategorized/629-revision-9.html', 0, 'revision', '', 0),
(647, 1, '2011-07-30 15:58:56', '2011-07-30 15:58:56', '<strong><span style="color: #0000ff;">SP là gì?</span></strong>\r\n\r\nSP (Stored Procedure) là tên được đặt cho một nhóm các mệnh đề SQL được tạo ra và lưu trong server database.\r\n\r\nSP cho phép truyền tham số, và có thể được gọi bởi nhiều Client qua mạng với các tham số khác nhau. Khi SP bị thay đổi, tất cả Client sẽ tự động nhận được bản mới, vì SP được lưu ở Server, chứ không phải Client.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Lợi ích của SP</strong></span>:\r\n<ul>\r\n <li>Giảm lưu lượng dữ liệu được truyền qua mạng và tăng hiệu năng (Performance). Client chỉ việc truyền tên SP và tham số (nếu có) thay vì gửi những câu SQL nhiều dòng dài ngoằng.</li>\r\n <li>Có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu của Database.</li>\r\n <li>Đối với những ứng dụng lớn kết nối với cơ sở dữ liệu, ta nên dùng SP, tôi liệt kê một vài lợi ích cụ thể như sau:\r\n<ul>\r\n <li><span style="color: #008000;">Dễ bảo trì</span>, việc thay đổi SP hoàn toàn không ảnh hưởng đến người dùng cuối, trong suốt với họ.</li>\r\n <li><span style="color: #008000;">Chuyên biệt công việc</span>, ví dụ những Developer giỏi lập trình C# thì chuyên tâm lập trình C#, còn những Developer giỏi lập trình T-SQL thì chuyên viết SQL từ căn bản đến phức tạp.</li>\r\n <li><span style="color: #008000;">Tăng khả năng bảo mật</span>. Đối với những ứng dụng mà ta không muốn cho Developer biết thông tin về nghiệp vụ bên trong thì ta viết SP, Developer chỉ gọi SP sử dụng mà không biết ta xử lý gì bên trong.</li>\r\n <li><span style="color: #008000;">Tái sử dụng Code</span>. Đối với những đoạn Code thường xuyên được sử dụng thì SP rất hữu dụng.</li>\r\n</ul>\r\n</li>\r\n <li>VD: sp_spaceused, sp_renameddb...</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>View là gì?</strong></span>\r\n\r\nView có thể được xem như một Table ảo mà dữ liệu của nó được lấy ra  từ một câu truy vấn, có chứa cột và dữ liệu từ một hay nhiều Table khác  nhau, hay từ những View khác nhau. Ðối với lập trình viên thì View không  khác chi so với Table và có thể đặt ở vị trí của Table trong các câu  lệnh SQL.\r\n\r\nÐặc điểm của View là ta có thể join dữ liệu từ nhiều Table và trả về  một tập kết quả đơn. Ngoài ra ta có thể thao tác dữ liệu trước khi trả  về cho user bằng cách dùng các lệnh SQL như where, case...<img title="More..." src="http://sqlvn.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />\r\n<blockquote>Lưu ý: View đơn giản là 1 Table ảo, nó không được lưu trữ lễn đĩa về mặt vật lý như Table thông thường.</blockquote>\r\n<span style="color: #0000ff;"><strong>Lợi ích của View.</strong></span>\r\n<ul>\r\n <li>Có khả năng tăng tính bảo mật. View giúp ta che giấu cấu trúc của  câu truy vấn bên trong. Sau khi tạo xong View ta có thể Insert, Delete,  Update như 1 Table bình thường.</li>\r\n <li>Giảm độ phức tạp. Ví dụ như User chỉ muốn xem thông tin của một vài  cột với một điều kiện nào đó, View cung cấp đúng dữ liệu họ muốn mà  không có dữ liệu thừa.</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Trigger là gì?</strong></span>\r\n\r\nTrigger có thể hiểu đơn giản là một thủ tục SQL được thực thi ở phía  Server khi có một sự kiện xảy ra như Insert, Delete, hay Update. Tuy  nhiên khác với Stored Procedure, Trigger hoàn toàn không có tham số.  Chúng ta không thể gọi thực hiện trực tiếp Trigger bằng lệnh  EXECUTE  như Stored Procedure hoặc bằng bất kỳ một lệnh nào khác, Thay vào  đó  trigger sẽ được thực hiện một cách tự động.\r\n\r\nTrigger cũng có thể gọi thực thi Stored Procedure.\r\n\r\nTrigger được lưu trữ và quản lý trong Server Database.\r\n\r\nTrigger được dùng trong trường hợp ta muốn kiểm tra các ràng buộc toàn vẹn trong Database.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Stored Procedure, View, Trigger là gì?', '', 'inherit', 'open', 'open', '', '571-revision-10', '', '', '2011-07-30 15:58:56', '2011-07-30 15:58:56', '', 571, 'http://sqlvn.com/uncategorized/571-revision-10.html', 0, 'revision', '', 0),
(648, 1, '2011-08-01 05:48:31', '2011-08-01 05:48:31', 'SQL Server cho phép bạn tạo ra 4 đối tượng bằng cách lập trình: Stored Procedure, View, Trigger, Function.\r\n\r\n<strong><span style="color: #0000ff;">SP là gì?</span></strong>\r\n\r\nSP (Stored Procedure) là tên được đặt cho một nhóm các mệnh đề SQL được tạo ra và lưu trong server database.\r\n\r\nSP cho phép truyền tham số, và có thể được gọi bởi nhiều Client qua mạng với các tham số khác nhau. Khi SP bị thay đổi, tất cả Client sẽ tự động nhận được bản mới, vì SP được lưu ở Server, chứ không phải Client.<!--more-->\r\n\r\n<span style="color: #0000ff;"><strong>Lợi ích của SP</strong></span>:\r\n<ul>\r\n <li>Giảm lưu lượng dữ liệu được truyền qua mạng và tăng hiệu năng (Performance). Client chỉ việc truyền tên SP và tham số (nếu có) thay vì gửi những câu SQL nhiều dòng dài ngoằng.</li>\r\n <li>Có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu của Database.</li>\r\n <li>Đối với những ứng dụng lớn kết nối với cơ sở dữ liệu, ta nên dùng SP, tôi liệt kê một vài lợi ích cụ thể như sau:\r\n<ul>\r\n <li><span style="color: #008000;">Dễ bảo trì</span>, việc thay đổi SP hoàn toàn không ảnh hưởng đến người dùng cuối, trong suốt với họ.</li>\r\n <li><span style="color: #008000;">Chuyên biệt công việc</span>, ví dụ những Developer giỏi lập trình C# thì chuyên tâm lập trình C#, còn những Developer giỏi lập trình T-SQL thì chuyên viết SQL từ căn bản đến phức tạp.</li>\r\n <li><span style="color: #008000;">Tăng khả năng bảo mật</span>. Đối với những ứng dụng mà ta không muốn cho Developer biết thông tin về nghiệp vụ bên trong thì ta viết SP, Developer chỉ gọi SP sử dụng mà không biết ta xử lý gì bên trong.</li>\r\n <li><span style="color: #008000;">Tái sử dụng Code</span>. Đối với những đoạn Code thường xuyên được sử dụng thì SP rất hữu dụng.</li>\r\n</ul>\r\n</li>\r\n <li>VD: sp_spaceused, sp_renameddb...</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>View là gì?</strong></span>\r\n\r\nView có thể được xem như một Table ảo mà dữ liệu của nó được lấy ra  từ một câu truy vấn, có chứa cột và dữ liệu từ một hay nhiều Table khác  nhau, hay từ những View khác nhau. Ðối với lập trình viên thì View không  khác chi so với Table và có thể đặt ở vị trí của Table trong các câu  lệnh SQL.\r\n\r\nÐặc điểm của View là ta có thể join dữ liệu từ nhiều Table và trả về  một tập kết quả đơn. Ngoài ra ta có thể thao tác dữ liệu trước khi trả  về cho user bằng cách dùng các lệnh SQL như where, case...<img title="More..." src="http://sqlvn.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />\r\n<blockquote>Lưu ý: View đơn giản là 1 Table ảo, nó không được lưu trữ lễn đĩa về mặt vật lý như Table thông thường.</blockquote>\r\n<span style="color: #0000ff;"><strong>Lợi ích của View.</strong></span>\r\n<ul>\r\n <li>Có khả năng tăng tính bảo mật. View giúp ta che giấu cấu trúc của  câu truy vấn bên trong. Sau khi tạo xong View ta có thể Insert, Delete,  Update như 1 Table bình thường.</li>\r\n <li>Giảm độ phức tạp. Ví dụ như User chỉ muốn xem thông tin của một vài  cột với một điều kiện nào đó, View cung cấp đúng dữ liệu họ muốn mà  không có dữ liệu thừa.</li>\r\n</ul>\r\n<span style="color: #0000ff;"><strong>Trigger là gì?</strong></span>\r\n\r\nTrigger có thể hiểu đơn giản là một thủ tục SQL được thực thi ở phía  Server khi có một sự kiện xảy ra như Insert, Delete, hay Update. Tuy  nhiên khác với Stored Procedure, Trigger hoàn toàn không có tham số.  Chúng ta không thể gọi thực hiện trực tiếp Trigger bằng lệnh  EXECUTE  như Stored Procedure hoặc bằng bất kỳ một lệnh nào khác, Thay vào  đó  trigger sẽ được thực hiện một cách tự động.\r\n\r\nTrigger cũng có thể gọi thực thi Stored Procedure.\r\n\r\nTrigger được lưu trữ và quản lý trong Server Database.\r\n\r\nTrigger được dùng trong trường hợp ta muốn kiểm tra các ràng buộc toàn vẹn trong Database.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', '', '', 'inherit', 'open', 'open', '', '571-revision-11', '', '', '2011-08-01 05:48:31', '2011-08-01 05:48:31', '', 571, 'http://sqlvn.com/uncategorized/571-revision-11.html', 0, 'revision', '', 0);

0 comments:

Post a Comment

 
Toggle Footer