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

Trả về thông tin cột từ một máy chủ được liên kết trong SQL Server (Ví dụ T-SQL)

Trong SQL Server, bạn có thể sử dụng sp_columns_ex hệ thống lưu trữ thủ tục để trả về thông tin cột về các cột từ một máy chủ được liên kết cụ thể.

Bạn có thể chỉ định một cột riêng lẻ hoặc bạn có thể chỉ định tất cả các cột từ một cơ sở dữ liệu, bảng nhất định, v.v.

Cú pháp

Cú pháp như sau:

sp_columns_ex [ @table_server = ] 'table_server'   
     [ , [ @table_name = ] 'table_name' ]   
     [ , [ @table_schema = ] 'table_schema' ]   
     [ , [ @table_catalog = ] 'table_catalog' ]   
     [ , [ @column_name = ] 'column' ]   
     [ , [ @ODBCVer = ] 'ODBCVer' ]

@table_server đối số là đối số bắt buộc duy nhất. Đây là tên của máy chủ được liên kết mà bạn muốn có thông tin bảng.

Các đối số khác là tùy chọn và tôi đề cập hầu hết chúng trong các ví dụ sau. Để biết thêm thông tin về các đối số này, hãy xem tài liệu của Microsoft.

Ví dụ 1 - Trả về một cột cụ thể

Ví dụ sau trả về thông tin về một cột cụ thể.

EXEC sp_columns_ex 
  @table_server = 'Homer',   
  @table_name = 'Artists',   
  @table_schema = 'dbo',   
  @table_catalog = 'Music',   
  @column_name = 'ArtistName';

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

TABLE_CAT         | Music
TABLE_SCHEM       | dbo
TABLE_NAME        | Artists
COLUMN_NAME       | ArtistName
DATA_TYPE         | -9
TYPE_NAME         | nvarchar
COLUMN_SIZE       | 255
BUFFER_LENGTH     | 510
DECIMAL_DIGITS    | NULL
NUM_PREC_RADIX    | NULL
NULLABLE          | 0
REMARKS           | NULL
COLUMN_DEF        | NULL
SQL_DATA_TYPE     | -9
SQL_DATETIME_SUB  | NULL
CHAR_OCTET_LENGTH | 510
ORDINAL_POSITION  | 2
IS_NULLABLE       | NO
SS_DATA_TYPE      | 39

Trong trường hợp này, tên máy chủ là Homer , tên cơ sở dữ liệu là Music , tên bảng là Artists , lược đồ bảng là dbo và tên cột là ArtistName .

Điều này cũng có thể được thực hiện như thế này:

EXEC sp_columns_ex 
  'Homer',   
  'Artists',   
   'dbo',   
  'Music',   
  'ArtistName';

Ví dụ 2 - Chỉ Chỉ định Bảng

Trong ví dụ này, tôi chỉ xác định tên bảng.

EXEC sp_columns_ex 
  @table_server = 'Homer',  
  @table_name = 'Artists';

Điều này trả về thông tin về tất cả các cột trong Nghệ sĩ bàn.

Ví dụ 3 - Chỉ định Cơ sở dữ liệu &Tên Cột

Trong ví dụ này, tôi chỉ định cơ sở dữ liệu và cột, nhưng không chỉ định bảng.

EXEC sp_columns_ex 
  @table_server = 'Homer', 
  @table_catalog = 'Music',   
  @column_name = 'ArtistName';

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

-[ RECORD 1 ]-------------------------
TABLE_CAT         | Music
TABLE_SCHEM       | dbo
TABLE_NAME        | Artists
COLUMN_NAME       | ArtistName
DATA_TYPE         | -9
TYPE_NAME         | nvarchar
COLUMN_SIZE       | 255
BUFFER_LENGTH     | 510
DECIMAL_DIGITS    | NULL
NUM_PREC_RADIX    | NULL
NULLABLE          | 0
REMARKS           | NULL
COLUMN_DEF        | NULL
SQL_DATA_TYPE     | -9
SQL_DATETIME_SUB  | NULL
CHAR_OCTET_LENGTH | 510
ORDINAL_POSITION  | 2
IS_NULLABLE       | NO
SS_DATA_TYPE      | 39
-[ RECORD 2 ]-------------------------
TABLE_CAT         | Music
TABLE_SCHEM       | dbo
TABLE_NAME        | BluesAlbums
COLUMN_NAME       | ArtistName
DATA_TYPE         | -9
TYPE_NAME         | nvarchar
COLUMN_SIZE       | 255
BUFFER_LENGTH     | 510
DECIMAL_DIGITS    | NULL
NUM_PREC_RADIX    | NULL
NULLABLE          | 0
REMARKS           | NULL
COLUMN_DEF        | NULL
SQL_DATA_TYPE     | -9
SQL_DATETIME_SUB  | NULL
CHAR_OCTET_LENGTH | 510
ORDINAL_POSITION  | 2
IS_NULLABLE       | NO
SS_DATA_TYPE      | 39
-[ RECORD 3 ]-------------------------
TABLE_CAT         | Music
TABLE_SCHEM       | dbo
TABLE_NAME        | JazzAlbums
COLUMN_NAME       | ArtistName
DATA_TYPE         | -9
TYPE_NAME         | nvarchar
COLUMN_SIZE       | 255
BUFFER_LENGTH     | 510
DECIMAL_DIGITS    | NULL
NUM_PREC_RADIX    | NULL
NULLABLE          | 0
REMARKS           | NULL
COLUMN_DEF        | NULL
SQL_DATA_TYPE     | -9
SQL_DATETIME_SUB  | NULL
CHAR_OCTET_LENGTH | 510
ORDINAL_POSITION  | 2
IS_NULLABLE       | NO
SS_DATA_TYPE      | 39
-[ RECORD 4 ]-------------------------
TABLE_CAT         | Music
TABLE_SCHEM       | dbo
TABLE_NAME        | RockAlbums
COLUMN_NAME       | ArtistName
DATA_TYPE         | -9
TYPE_NAME         | nvarchar
COLUMN_SIZE       | 255
BUFFER_LENGTH     | 510
DECIMAL_DIGITS    | NULL
NUM_PREC_RADIX    | NULL
NULLABLE          | 0
REMARKS           | NULL
COLUMN_DEF        | NULL
SQL_DATA_TYPE     | -9
SQL_DATETIME_SUB  | NULL
CHAR_OCTET_LENGTH | 510
ORDINAL_POSITION  | 2
IS_NULLABLE       | NO
SS_DATA_TYPE      | 39

Điều này trả lại ba cột nữa. Chúng xảy ra từ ba chế độ xem khác nhau (cơ sở dữ liệu có ba chế độ xem với một ArtistName cột:BluesAlbums , JazzAlbumsRockAlbums ).

Ví dụ 4 - Chỉ Chỉ định Cơ sở dữ liệu

Ở đây tôi chỉ xác định cơ sở dữ liệu:

EXEC sp_columns_ex 
  @table_server = 'Homer', 
  @table_catalog = 'Music';

Tôi sẽ không hiển thị kết quả ở đây vì nó trả về gần 6.000 hàng. Hầu hết trong số này là từ sys lược đồ bảng.

Ví dụ 5 - Chỉ định một lược đồ bảng

Ví dụ sau đây thu hẹp kết quả vào một lược đồ bảng cụ thể (dbo ).

EXEC sp_columns_ex 
  @table_server = 'Homer',  
  @table_schema = 'dbo';

Điều này trả về một tập hợp kết quả nhỏ hơn nhiều so với ví dụ trước. Nó vẫn còn khá lớn, vì vậy tôi sẽ không hiển thị nó ở đây.

Ví dụ 6 - Các ký tự đại diện

Bạn cũng có thể sử dụng các ký tự đại diện. Dưới đây là một ví dụ về việc sử dụng % ký tự đại diện:

EXEC sp_columns_ex 
  @table_server = 'Homer',  
  @table_schema = 'dbo',
  @table_catalog = 'Music',   
  @column_name = 'Ar%';

Điều này trả về tất cả các cột bắt đầu bằng Ar . Trong trường hợp của tôi, nó trả về hai ArtistId cột và bốn ArtistName cột.

Tôi có thể thu hẹp điều này lại:

EXEC sp_columns_ex 
  @table_server = 'Homer',  
  @table_schema = 'dbo',
  @table_catalog = 'Music',   
  @column_name = 'Ar%Name';

Điều này chỉ trả về ArtistName cột.

Tuy nhiên, nếu tôi xóa r :

EXEC sp_columns_ex 
  @table_server = 'Homer',  
  @table_schema = 'dbo',
  @table_catalog = 'Music',   
  @column_name = 'A%Name';

Bây giờ tôi nhận được bốn cột bổ sung có tên là AlbumName (cũng như ArtistName cột).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể mở cơ sở dữ liệu mặc định người dùng. Đăng nhập thất bại. sau khi cài đặt SQL Server Management Studio Express

  2. Cách thay đổi cột hoặc tạo tập lệnh thay thế bằng cách sử dụng GUI trong SQL Server - Hướng dẫn sử dụng SQL Server / T-SQL Phần 38

  3. datetime thành totalminute tính bằng sql

  4. Làm cách nào để lấy tập lệnh của dữ liệu SQL Server?

  5. Ví dụ về DATENAME () trong SQL Server