Metadata Parameter Bernilai Tabel Tambahan
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Untuk mengambil metadata untuk parameter bernilai tabel, aplikasi memanggil SQLProcedureColumns. Untuk parameter bernilai tabel, SQLProcedureColumns mengembalikan satu baris. Dua kolom khusus SQL Server tambahan, SS_TYPE_CATALOG_NAME dan SS_TYPE_SCHEMA_NAME, telah ditambahkan untuk menyediakan informasi skema dan katalog untuk jenis tabel yang terkait dengan parameter bernilai tabel. Sesuai dengan spesifikasi ODBC, SS_TYPE_CATALOG_NAME dan SS_TYPE_SCHEMA_NAME muncul sebelum semua kolom khusus driver ditambahkan dalam versi SQL Server sebelumnya, dan setelah semua kolom yang diamanatkan oleh ODBC itu sendiri.
Tabel berikut mencantumkan kolom yang signifikan untuk parameter bernilai tabel.
Nama kolom | Jenis Data | Nilai/komentar |
---|---|---|
DATA_TYPE | Smallint bukan NULL | SQL_SS_TABLE |
TYPE_NAME | WVarchar(128) bukan NULL | Nama jenis parameter bernilai tabel. |
COLUMN_SIZE | Bilangan bulat | NULL |
BUFFER_LENGTH | Bilangan bulat | 0 |
DECIMAL_DIGITS | Smallint | NULL |
NUM_PREC_RADIX | Smallint | NULL |
NULLABLE | Smallint bukan NULL | SQL_NULLABLE |
REMARKS | Varchar | NULL |
COLUMN_DEF | WVarchar(4000) | NULL |
SQL_DATA_TYPE | Smallint bukan NULL | SQL_SS_TABLE |
SQL_DATETIME_SUB | Smallint | NULL |
CHAR_OCTET_LENGTH | Bilangan bulat | NULL |
ORDINAL_POSITION | Bilangan bulat bukan NULL | Posisi ordinal parameter. |
IS_NULLABLE | Varchar | "YA" |
SS_TYPE_CATALOG_NAME | WVarchar(128) bukan NULL | Katalog yang berisi definisi jenis untuk jenis tabel parameter bernilai tabel. |
SS_TYPE_SCHEMA_NAME | WVarchar(128) bukan NULL | Skema yang berisi definisi jenis untuk jenis tabel parameter bernilai tabel. |
Kolom WVarchar didefinisikan sebagai Varchar dalam spesifikasi ODBC, tetapi sebenarnya dikembalikan sebagai WVarchar di semua driver ODBC SQL Server terbaru. Perubahan ini dilakukan ketika dukungan Unicide ditambahkan ke spesifikasi ODBC 3.5, tetapi tidak dipanggil secara eksplisit.
Untuk mendapatkan metadata tambahan untuk parameter bernilai tabel, aplikasi menggunakan fungsi katalog SQLColumns dan SQLPrimaryKeys. Sebelum fungsi-fungsi ini dipanggil untuk parameter bernilai tabel, aplikasi harus mengatur atribut pernyataan SQL_SOPT_SS_NAME_SCOPE ke SQL_SS_NAME_SCOPE_TABLE_TYPE. Nilai ini menunjukkan bahwa aplikasi memerlukan metadata untuk jenis tabel daripada tabel aktual. Aplikasi kemudian meneruskan TYPE_NAME parameter bernilai tabel sebagai parameter TableName . SS_TYPE_CATALOG_NAME dan SS_TYPE_SCHEMA_NAME digunakan dengan parameter CatalogName dan SchemaName , masing-masing, untuk mengidentifikasi katalog dan skema untuk parameter bernilai tabel. Setelah aplikasi selesai mengambil metadata untuk parameter bernilai tabel, aplikasi harus mengatur SQL_SOPT_SS_NAME_SCOPE kembali ke nilai default SQL_SS_NAME_SCOPE_TABLE.
Ketika SQL_SOPT_SS_NAME_SCOPE diatur ke SQL_SS_NAME_SCOPE_TABLE, kueri ke server tertaut gagal. Panggilan ke SQLColumns atau SQLPrimaryKeys dengan katalog yang berisi komponen server akan gagal.