Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách sys.dm_exec_describe_first_result_set hoạt động trong SQL Server

Trong SQL Server, sys.dm_exec_describe_first_result_set hàm quản lý động trả về siêu dữ liệu của tập kết quả đầu tiên cho một câu lệnh hoặc câu lệnh T-SQL nhất định.

Hàm này sử dụng thuật toán tương tự như sp_describe_first_result_set hệ thống lưu trữ thủ tục và thực hiện khá nhiều điều tương tự.

Nó chấp nhận ba tham số, tham số đầu tiên là / các câu lệnh T-SQL mà bạn đang phân tích.

Cú pháp

Cú pháp như sau:

sys.dm_exec_describe_first_result_set(@tsql, @params, @include_browse_information)

Ví dụ

Đây là một ví dụ để chứng minh.

SELECT * 
FROM sys.dm_exec_describe_first_result_set(
    N'SELECT * FROM Artists', 
    null, 
    0
);

Kết quả:

+-------------+------------------+------------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------+
| is_hidden   | column_ordinal   | name       | is_nullable   | system_type_id   | system_type_name   | max_length   | precision   | scale   | collation_name               | user_type_id   | user_type_database   | user_type_schema   | user_type_name   | assembly_qualified_type_name   | xml_collection_id   | xml_collection_database   | xml_collection_schema   | xml_collection_name   | is_xml_document   | is_case_sensitive   | is_fixed_length_clr_type   | source_server   | source_database   | source_schema   | source_table   | source_column   | is_identity_column   | is_part_of_unique_key   | is_updateable   | is_computed_column   | is_sparse_column_set   | ordinal_in_order_by_list   | order_by_is_descending   | order_by_list_length   | error_number   | error_severity   | error_state   | error_message   | error_type   | error_type_desc   |
|-------------+------------------+------------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------|
| 0           | 1                | ArtistId   | 0             | 56               | int                | 4            | 10          | 0       | NULL                         | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | NULL            | NULL              | NULL            | NULL           | NULL            | 1                    | NULL                    | 0               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
| 0           | 2                | ArtistName | 0             | 231              | nvarchar(255)      | 510          | 0           | 0       | SQL_Latin1_General_CP1_CI_AS | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | NULL            | NULL              | NULL            | NULL           | NULL            | 0                    | NULL                    | 1               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
| 0           | 3                | ActiveFrom | 1             | 40               | date               | 3            | 10          | 0       | NULL                         | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | NULL            | NULL              | NULL            | NULL           | NULL            | 0                    | NULL                    | 1               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
+-------------+------------------+------------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------+

Hàm này trả về khá nhiều cột, vì vậy bạn có thể cần phải cuộn sang ngang để xem tất cả chúng. Vui lòng xem tài liệu của Microsoft để biết giải thích về từng cột được trả về.

Chế độ duyệt

Đối số thứ ba - @include_browse_information - chỉ định xem các cột chính bổ sung và thông tin bảng nguồn có được trả về hay không.

Các giá trị sau được chấp nhận cho đối số này:

Giá trị Kết quả
0 Không có thông tin nào được trả lại.
1 Mỗi truy vấn được phân tích như thể nó bao gồm một FOR BROWSE tùy chọn trên truy vấn. Thao tác này sẽ trả về tên bảng cơ sở dưới dạng thông tin cột nguồn.
2 Mỗi truy vấn được phân tích như thể nó sẽ được sử dụng để chuẩn bị hoặc thực thi một con trỏ. Thao tác này sẽ trả về tên chế độ xem dưới dạng thông tin cột nguồn.

Dưới đây là các ví dụ minh họa cách mỗi giá trị này ảnh hưởng đến kết quả.

Để làm cho mọi thứ ngắn gọn hơn, tôi sẽ sửa đổi câu lệnh T-SQL của mình để chỉ trả về một cột.

Tôi nên đề cập rằng tài liệu Microsoft cho sys.dm_exec_describe_first_result_set chỉ đề cập đến hai giá trị:01 . Tuy nhiên, tài liệu cho sp_describe_first_result_set chỉ định ba giá trị:0 , 12 , như được liệt kê trong bảng trên.

Tài liệu cho sys.dm_exec_describe_first_result_set cũng nói rằng nó sử dụng cùng một thuật toán với sp_describe_first_result_set .

Tôi cũng đã kiểm tra chức năng này trong cả SQL Server 2017 và SQL Server 2019 và tham số này thực sự là tinyint , điều này cho thấy nó được thiết kế để chấp nhận nhiều hơn hai giá trị.

Dù bằng cách nào, các ví dụ sau đây đều bao gồm cả ba giá trị.

@include_browse_information = 0

Trong ví dụ này, tôi đặt @include_browse_information thành 0 .

SELECT * 
FROM sys.dm_exec_describe_first_result_set(
    N'SELECT AlbumName FROM vAlbums', 
    null, 
    0
);

Kết quả (sử dụng đầu ra dọc):

is_hidden                    | 0
column_ordinal               | 1
name                         | AlbumName
is_nullable                  | 0
system_type_id               | 231
system_type_name             | nvarchar(255)
max_length                   | 510
precision                    | 0
scale                        | 0
collation_name               | SQL_Latin1_General_CP1_CI_AS
user_type_id                 | NULL
user_type_database           | NULL
user_type_schema             | NULL
user_type_name               | NULL
assembly_qualified_type_name | NULL
xml_collection_id            | NULL
xml_collection_database      | NULL
xml_collection_schema        | NULL
xml_collection_name          | NULL
is_xml_document              | 0
is_case_sensitive            | 0
is_fixed_length_clr_type     | 0
source_server                | NULL
source_database              | NULL
source_schema                | NULL
source_table                 | NULL
source_column                | NULL
is_identity_column           | 0
is_part_of_unique_key        | NULL
is_updateable                | 1
is_computed_column           | 0
is_sparse_column_set         | 0
ordinal_in_order_by_list     | NULL
order_by_is_descending       | NULL
order_by_list_length         | NULL
error_number                 | NULL
error_severity               | NULL
error_state                  | NULL
error_message                | NULL
error_type                   | NULL
error_type_desc              | NULL

Lưu ý rằng khá nhiều cột là NULL . Đặc biệt, hãy lưu ý rằng source_database , source_schema , source_tablesource_column các cột là NULL .

Các cột này sẽ không phải là NULL trong hai ví dụ tiếp theo, nhưng chúng sẽ tạo ra hai kết quả khác nhau.

@include_browse_information = 1

Trong ví dụ này, tôi đặt @include_browse_information thành 1 .

SELECT * 
FROM sys.dm_exec_describe_first_result_set(
    N'SELECT AlbumName FROM vAlbums', 
    null, 
    1
);

Cài đặt @include_browse_information thành 1 trả về kết quả như thể nó bao gồm FOR BROWSE tùy chọn trên truy vấn.

Trong trường hợp của chúng tôi, điều này hiện dẫn đến bốn hàng được trả về (đại diện cho bốn cột từ các bảng cơ sở).

Đây là bốn hàng được trả về:

+-------------+------------------+-----------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------+
| is_hidden   | column_ordinal   | name      | is_nullable   | system_type_id   | system_type_name   | max_length   | precision   | scale   | collation_name               | user_type_id   | user_type_database   | user_type_schema   | user_type_name   | assembly_qualified_type_name   | xml_collection_id   | xml_collection_database   | xml_collection_schema   | xml_collection_name   | is_xml_document   | is_case_sensitive   | is_fixed_length_clr_type   | source_server   | source_database   | source_schema   | source_table   | source_column   | is_identity_column   | is_part_of_unique_key   | is_updateable   | is_computed_column   | is_sparse_column_set   | ordinal_in_order_by_list   | order_by_is_descending   | order_by_list_length   | error_number   | error_severity   | error_state   | error_message   | error_type   | error_type_desc   |
|-------------+------------------+-----------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------|
| 0           | 1                | AlbumName | 0             | 231              | nvarchar(255)      | 510          | 0           | 0       | SQL_Latin1_General_CP1_CI_AS | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | Homer           | Music             | dbo             | Albums         | AlbumName       | 0                    | 0                       | 1               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
| 1           | 2                | ArtistId  | 0             | 56               | int                | 4            | 10          | 0       | NULL                         | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | Homer           | Music             | dbo             | Artists        | ArtistId        | 0                    | 1                       | 1               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
| 1           | 3                | AlbumId   | 0             | 56               | int                | 4            | 10          | 0       | NULL                         | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | Homer           | Music             | dbo             | Albums         | AlbumId         | 0                    | 1                       | 1               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
| 1           | 4                | GenreId   | 0             | 56               | int                | 4            | 10          | 0       | NULL                         | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | Homer           | Music             | dbo             | Genres         | GenreId         | 0                    | 1                       | 1               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
+-------------+------------------+-----------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------+

Vì vậy, mặc dù tôi chỉ chỉ định một cột trong truy vấn T-SQL mà tôi đã chuyển cho thủ tục, nó trả về thông tin cho bốn cột. Đây là bốn cột được tham chiếu bởi vAlbums xem.

Nếu bạn cuộn sang ngang đủ xa, bạn sẽ thấy rằng source_database , source_schema , source_tablesource_column cột không còn NULL . Cả source_server cột. Chúng cung cấp thông tin về các đối tượng cơ sở được chế độ xem truy vấn.

Để dễ nhìn hơn, hãy sử dụng đầu ra dọc chỉ trên một hàng (đại diện cho một cột):

is_hidden                    | 0
column_ordinal               | 1
name                         | AlbumName
is_nullable                  | 0
system_type_id               | 231
system_type_name             | nvarchar(255)
max_length                   | 510
precision                    | 0
scale                        | 0
collation_name               | SQL_Latin1_General_CP1_CI_AS
user_type_id                 | NULL
user_type_database           | NULL
user_type_schema             | NULL
user_type_name               | NULL
assembly_qualified_type_name | NULL
xml_collection_id            | NULL
xml_collection_database      | NULL
xml_collection_schema        | NULL
xml_collection_name          | NULL
is_xml_document              | 0
is_case_sensitive            | 0
is_fixed_length_clr_type     | 0
source_server                | Homer
source_database              | Music
source_schema                | dbo
source_table                 | Albums
source_column                | AlbumName
is_identity_column           | 0
is_part_of_unique_key        | 0
is_updateable                | 1
is_computed_column           | 0
is_sparse_column_set         | 0
ordinal_in_order_by_list     | NULL
order_by_is_descending       | NULL
order_by_list_length         | NULL
error_number                 | NULL
error_severity               | NULL
error_state                  | NULL
error_message                | NULL
error_type                   | NULL
error_type_desc              | NULL

Chúng ta có thể thấy rằng source_server , source_database , source_schema , source_tablesource_column bây giờ các cột cung cấp thông tin về máy chủ, cơ sở dữ liệu, lược đồ, bảng và các cột cơ bản được tham chiếu trong chế độ xem.

Trong trường hợp của tôi, chế độ xem của tôi truy vấn các bảng trên một máy chủ được liên kết. Do đó, các bảng cơ sở nằm trong một cơ sở dữ liệu khác, trên một máy chủ khác.

Ngược lại, khi chúng tôi đặt @include_browse_information thành 2 trong ví dụ tiếp theo, chúng tôi sẽ nhận được các cột thực tế trong chế độ xem.

@include_browse_information = 2

Cuối cùng, hãy đặt @include_browse_information thành 2 .

SELECT * 
FROM sys.dm_exec_describe_first_result_set(
    N'SELECT AlbumName FROM vAlbums', 
    null, 
    2
);

Trong trường hợp này, truy vấn được phân tích như thể nó sẽ được sử dụng để chuẩn bị hoặc thực thi một con trỏ.

Lần này, chỉ có hai hàng được trả lại:

+-------------+------------------+-----------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------+
| is_hidden   | column_ordinal   | name      | is_nullable   | system_type_id   | system_type_name   | max_length   | precision   | scale   | collation_name               | user_type_id   | user_type_database   | user_type_schema   | user_type_name   | assembly_qualified_type_name   | xml_collection_id   | xml_collection_database   | xml_collection_schema   | xml_collection_name   | is_xml_document   | is_case_sensitive   | is_fixed_length_clr_type   | source_server   | source_database   | source_schema   | source_table   | source_column   | is_identity_column   | is_part_of_unique_key   | is_updateable   | is_computed_column   | is_sparse_column_set   | ordinal_in_order_by_list   | order_by_is_descending   | order_by_list_length   | error_number   | error_severity   | error_state   | error_message   | error_type   | error_type_desc   |
|-------------+------------------+-----------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------|
| 0           | 1                | AlbumName | 0             | 231              | nvarchar(255)      | 510          | 0           | 0       | SQL_Latin1_General_CP1_CI_AS | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | NULL            | Test              | dbo             | vAlbums        | AlbumName       | 0                    | 0                       | 1               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
| 1           | 2                | ROWSTAT^@   | 0             | 56               | int                | 4            | 10          | 0       | NULL                         | NULL           | NULL                 | NULL               | NULL             | NULL                           | NULL                | NULL                      | NULL                    | NULL                  | 0                 | 0                   | 0                          | NULL            | NULL              | NULL            | NULL           | NULL            | 0                    | 0                       | 0               | 0                    | 0                      | NULL                       | NULL                     | NULL                   | NULL           | NULL             | NULL          | NULL            | NULL         | NULL              |
+-------------+------------------+-----------+---------------+------------------+--------------------+--------------+-------------+---------+------------------------------+----------------+----------------------+--------------------+------------------+--------------------------------+---------------------+---------------------------+-------------------------+-----------------------+-------------------+---------------------+----------------------------+-----------------+-------------------+-----------------+----------------+-----------------+----------------------+-------------------------+-----------------+----------------------+------------------------+----------------------------+--------------------------+------------------------+----------------+------------------+---------------+-----------------+--------------+-------------------+

Và để giúp bạn không phải cuộn sang ngang, đây là hàng đầu tiên trong đầu ra theo chiều dọc:

is_hidden                    | 0
column_ordinal               | 1
name                         | AlbumName
is_nullable                  | 0
system_type_id               | 231
system_type_name             | nvarchar(255)
max_length                   | 510
precision                    | 0
scale                        | 0
collation_name               | SQL_Latin1_General_CP1_CI_AS
user_type_id                 | NULL
user_type_database           | NULL
user_type_schema             | NULL
user_type_name               | NULL
assembly_qualified_type_name | NULL
xml_collection_id            | NULL
xml_collection_database      | NULL
xml_collection_schema        | NULL
xml_collection_name          | NULL
is_xml_document              | 0
is_case_sensitive            | 0
is_fixed_length_clr_type     | 0
source_server                | NULL
source_database              | Test
source_schema                | dbo
source_table                 | vAlbums
source_column                | AlbumName
is_identity_column           | 0
is_part_of_unique_key        | 0
is_updateable                | 1
is_computed_column           | 0
is_sparse_column_set         | 0
ordinal_in_order_by_list     | NULL
order_by_is_descending       | NULL
order_by_list_length         | NULL
error_number                 | NULL
error_severity               | NULL
error_state                  | NULL
error_message                | NULL
error_type                   | NULL
error_type_desc              | NULL

Trong ví dụ này, source_table cột chứa tên chế độ xem thực tế chứ không phải bảng cơ sở và source_database là tên của cơ sở dữ liệu cục bộ mà tôi đã truy vấn chế độ xem từ đó. Ngoài ra, source_column là cột mà tôi đã truy vấn từ chế độ xem, thay vì bất kỳ cột nào từ các bảng cơ sở.

@params Đối số

Cho đến nay, điều duy nhất chúng tôi sử dụng @params đối số cho là đặt nó thành NULL .

Nếu lô SQL mà bạn đang phân tích có chứa các tham số, hãy sử dụng @params hàm khai báo các tham số đó.

Điều này hoạt động tương tự như cách bạn khai báo các tham số khi sử dụng sp_executesql thủ tục.

Dưới đây là một ví dụ khai báo một tham số với @params đối số.

SELECT * 
FROM sys.dm_exec_describe_first_result_set(
    N'SELECT ArtistName FROM Homer.Music.dbo.Artists WHERE ArtistId = @ArtistId', 
    N'@ArtistId int', 
    1
);

Kết quả (sử dụng đầu ra dọc):

-[ RECORD 1 ]-------------------------
is_hidden                    | 0
column_ordinal               | 1
name                         | ArtistName
is_nullable                  | 0
system_type_id               | 231
system_type_name             | nvarchar(255)
max_length                   | 510
precision                    | 0
scale                        | 0
collation_name               | SQL_Latin1_General_CP1_CI_AS
user_type_id                 | NULL
user_type_database           | NULL
user_type_schema             | NULL
user_type_name               | NULL
assembly_qualified_type_name | NULL
xml_collection_id            | NULL
xml_collection_database      | NULL
xml_collection_schema        | NULL
xml_collection_name          | NULL
is_xml_document              | 0
is_case_sensitive            | 0
is_fixed_length_clr_type     | 0
source_server                | Homer
source_database              | Music
source_schema                | dbo
source_table                 | Artists
source_column                | ArtistName
is_identity_column           | 0
is_part_of_unique_key        | 0
is_updateable                | 1
is_computed_column           | 0
is_sparse_column_set         | 0
ordinal_in_order_by_list     | NULL
order_by_is_descending       | NULL
order_by_list_length         | NULL
error_number                 | NULL
error_severity               | NULL
error_state                  | NULL
error_message                | NULL
error_type                   | NULL
error_type_desc              | NULL
-[ RECORD 2 ]-------------------------
is_hidden                    | 1
column_ordinal               | 2
name                         | ArtistId
is_nullable                  | 0
system_type_id               | 56
system_type_name             | int
max_length                   | 4
precision                    | 10
scale                        | 0
collation_name               | NULL
user_type_id                 | NULL
user_type_database           | NULL
user_type_schema             | NULL
user_type_name               | NULL
assembly_qualified_type_name | NULL
xml_collection_id            | NULL
xml_collection_database      | NULL
xml_collection_schema        | NULL
xml_collection_name          | NULL
is_xml_document              | 0
is_case_sensitive            | 0
is_fixed_length_clr_type     | 0
source_server                | Homer
source_database              | Music
source_schema                | dbo
source_table                 | Artists
source_column                | ArtistId
is_identity_column           | 0
is_part_of_unique_key        | 1
is_updateable                | 1
is_computed_column           | 0
is_sparse_column_set         | 0
ordinal_in_order_by_list     | NULL
order_by_is_descending       | NULL
order_by_list_length         | NULL
error_number                 | NULL
error_severity               | NULL
error_state                  | NULL
error_message                | NULL
error_type                   | NULL
error_type_desc              | NULL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách tìm kích thước hàng trong bảng

  2. ON [PRIMARY] có nghĩa là gì?

  3. Cải thiện điều chỉnh hiệu suất SQL Server với 3 mẹo sau

  4. SQL Server câu lệnh tham gia có điều kiện

  5. COUNT () so với COUNT_BIG () trong SQL Server:Sự khác biệt là gì?