Aracılığıyla paylaş


getColumns Yöntemi (SQLServerDatabaseMetaData)

JDBC sürücüsünü indirin

Belirtilen katalogda mevcut olan tablo sütunlarının açıklamasını alır.

Sözdizimi

  
public java.sql.ResultSet getColumns(java.lang.String catalog,  
                                     java.lang.String schema,  
                                     java.lang.String table,  
                                     java.lang.String col)  

Parametreler

katalog

Katalog adını içeren bir Dizgi .

schema

Şema adı desenini içeren bir Dizgi .

table

Tablo adı desenini içeren bir Dizgi .

Col

Sütun adı desenini içeren bir Dizgi .

Dönüş Değeri

Bir SQLServerResultSet nesnesi.

Exceptions

SQLServerException

Açıklamalar

Bu getColumns yöntemi, java.sql.DatabaseMetaData arayüzündeki getColumns yöntemiyle belirtilir.

getColumns yöntemiyle döndürülen sonuç kümesi aşağıdaki bilgileri içerir:

İsim Türü Description
TABLE_CAT String Katalog adı.
TABLE_SCHEM String Tablo şeması adı.
TABLE_NAME String Tablo adı.
COLUMN_NAME String Sütun adı.
VERİ_TİPİ smallint java.sql.Types'ten SQL veri türü.
TYPE_NAME String Veri türünün adı.
COLUMN_SIZE int Sütunun duyarlığı.
BUFFER_LENGTH smallint Veri aktarım boyutu.
DECIMAL_DIGITS smallint Sütunun ölçeği.
NUM_PREC_RADIX smallint Sütunun radiksi.
NULLABLE smallint Sütunun nullable olup olmadığını gösterir. Aşağıdaki değerlerden biri olabilir:

columnNoNulls (0)

columnNullable (1)
AÇIKLAMALAR String Köşeyle ilgili yorumlar.

Not: SQL Server her zaman bu sütun için null döndürür.
COLUMN_DEF String Sütunun varsayılan değeri.
SQL_DATA_TYPE smallint SQL veri türünün değeri, tanımlayıcının TYPE alanında göründüğü şeklinde. Bu sütun, tarih saati ve SQL-92 aralığı veri türleri dışında DATA_TYPE sütunuyla aynıdır. Bu sütun her zaman bir değer döndürür.
SQL_DATETIME_SUB smallint Datetime ve SQL-92 aralıklı veri tipleri için alt tip kodu. Diğer veri türleri için ise bu sütun NULL döner.
CHAR_OCTET_LENGTH int Sütundaki maksimum bayt sayısı.
ORDINAL_POSITION int Tablodaki sütunun indeksi.
IS_NULLABLE String Sütunun null değerlere izin verip vermediğini gösterir.
SS_IS_SPARSE smallint Eğer sütun seyrek bir sütunsa, bu değer 1'dir; aksi takdirde, 0. 1
SS_IS_COLUMN_SET smallint Eğer sütun seyrek column_set sütunsa, bu değer 1'dir; aksi takdirde, 0. 1
SS_IS_COMPUTED smallint Bir TABLE_TYPE'taki bir sütunun hesaplanan bir sütun olup olmadığını gösterir. 1
IS_AUTOINCREMENT String Sütun otomatik olarak artırılırsa "EVET" demektir. Sütun otomatik olarak artırılmamışsa "HAYIR". "" (boş dize) sürücü sütunun otomatik artıp artırılmadığını belirleyemezse. 1
SS_UDT_CATALOG_NAME String Kullanıcı tanımlı tipi (UDT) içeren kataloğun adı. 1
SS_UDT_SCHEMA_NAME String Kullanıcı tanımlı tipi (UDT) içeren şemanın adı. 1
SS_UDT_ASSEMBLY_TYPE_NAME String Tam nitelikli isim kullanıcı tanımlı tip (UDT). 1
SS_XML_SCHEMACOLLECTION_CATALOG_NAME String XML şema koleksiyonu adının tanımlandığı kataloğun adı. Katalog adı bulunamazsa, bu değişken boş bir dizi içerir. 1
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME String XML şema koleksiyonu adının tanımlandığı şemanın adı. Şema adı bulunamazsa, bu boş bir dizedir. 1
SS_XML_SCHEMACOLLECTION_NAME String Bir XML şema koleksiyonunun adı. İsim bulunamazsa, bu boş bir dizedir. 1
SS_DATA_TYPE tinyint Genişletilmiş depolanmış prosedürler tarafından kullanılan SQL Server veri tipi.

Not SQL Server tarafından döndürülen veri türleri hakkında daha fazla bilgi için SQL Server Books Online'daki "Veri Tipleri (Transact-SQL)" bölümüne bakınız.

(1) SQL Server 2005 (9.x)'e bağlanıyorsanız bu sütun bulunmaz.

Uyarı

getColumns yöntemiyle sağlanan veriler hakkında daha fazla bilgi için SQL Server Books Online içindeki "sp_columns (Transact-SQL)" bölümüne bakınız.

Microsoft SQL Server JDBC Driver 3.0'da, JDBC Sürücüsünün önceki sürümlerinden aşağıdaki davranış değişikliklerini göreceksiniz:

DATA_TYPE sütunda aşağıdaki değişiklikler vardır:

SQL Server Veri Türü JDBC Sürücüsü 2.0'da (veya SQL Server 2005 (9.x)'a bağlıysa) ve Ilişkili Sayısal Sabit'te Dönüş Tipi SQL Server 2008 (10.0.x) ve sonraki sürümlere bağlandığında JDBC Driver 3.0'da Return Type
8 kB'den büyük kullanıcı tanımlı tip LONGVARBINARY (-4) VARBINARY (-3)
coğrafi bölge LONGVARBINARY (-4) VARBINARY (-3)
geometri LONGVARBINARY (-4) VARBINARY (-3)
varbinary(max) LONGVARBINARY (-4) VARBINARY (-3)
nvarchar(max) LONGVARCHAR (-1) veya LONGNVARCHAR (JDBC 4) (-16) VARCHAR (12) veya NVARCHAR (JDBC 4) (-9)
varchar(max) LONGVARCHAR (-1) VARCHAR (12)
time VARCHAR (12) veya NVARCHAR (JDBC 4) (-9) ZAMAN (-154)
date VARCHAR (12) veya NVARCHAR (JDBC 4) (-9) TARIH (91)
datetime2 VARCHAR (12) veya NVARCHAR (JDBC 4) (-9) ZAMAN DAMGASI (93)
datetimeoffset VARCHAR (12) veya NVARCHAR (JDBC 4) (-9) microsoft.sql.Types.DATETIMEOFFSET (-155)

COLUMN_SIZE sütunda aşağıdaki değişiklikler vardır:

SQL Server Veri Türü JDBC Driver 2.0'da Dönüş Tipi JDBC Driver 3.0'da Dönüş Tipi
nvarchar(max) 1073741823 2147483647 (veritabanı meta verisi)
xml 1073741823 2147483647 (veritabanı meta verisi)
Kullanıcı tanımlı tip 8 kB'den küçük veya eşit 8 kB (sonuç seti ve parametre meta verileri) Gerçek boyut, saklanan prosedürle döner.
time Türün dizim temsilinin karakter cinsinden, kesirli saniyeler bileşeninin maksimum izin verilen hassasiyeti varsayılarak.
date Zaman ile aynı
datetime2 Zaman ile aynı
datetimeoffset Zaman ile aynı

BUFFER_LENGTH sütunda şu değişiklik vardır:

SQL Server Veri Türü JDBC Driver 2.0'da Dönüş Tipi JDBC Driver 3.0'da Dönüş Tipi
8 kB'den büyük kullanıcı tanımlı tip 2147483647

TYPE_NAME sütunda aşağıdaki değişiklikler bulunmaktadır:

SQL Server Veri Türü JDBC Driver 2.0'da Dönüş Tipi JDBC Driver 3.0'da Dönüş Tipi
varchar(max) Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Varchar Belediyesi
varbinary(max) image varbinary

DECIMAL_DIGITS sütunda aşağıdaki değişiklikler vardır:

SQL Server Tipi JDBC Sürücü 2.0 JDBC Sürücü 3.0
time sıfır 7 (veya belirtilirse daha küçük)
date sıfır sıfır
datetime2 sıfır 7 (veya belirtilirse daha küçük)
datetimeoffset sıfır 7 (veya belirtilirse daha küçük)

SQL_DATA_TYPE sütunda aşağıdaki değişiklikler vardır:

SQL Server Veri Türü SQL Server 2008 JDBC Driver 2.0'da Veri Değeri SQL Server 2008 JDBC Driver 3.0'da Veri Değeri
varchar(max) -10 -9
nvarchar(max) -1 -9
xml -10 -152
Kullanıcı tanımlı tip 8 kB'den küçük veya eşit -3 -151
8 kB'den büyük kullanıcı tanımlı tip JDBC Driver 2.0'da mevcut değil -151
coğrafi bölge -4 -151
geometri -4 -151
Hiyerarşi -4 -151
time -9 92
date -9 91
datetime2 -9 93
datetimeoffset -9 -155

Example

Aşağıdaki örnek, AdventureWorks2025 örnek veritabanındaki Person.Contact tablosu için bilgileri geri göndermek için getColumns yönteminin nasıl kullanılacağını göstermektedir.

import java.sql.*;  
public class c1 {  
   public static void main(String[] args) {  
      String connectionUrl = "jdbc:sqlserver://localhost:1433;encrypt=true;databaseName=AdventureWorks;integratedsecurity=true";  
  
      Connection con = null;  
      Statement stmt = null;  
      ResultSet rs = null;  
  
      try {  
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
         con = DriverManager.getConnection(connectionUrl);  
         DatabaseMetaData dbmd = con.getMetaData();  
         rs = dbmd.getColumns("AdventureWorks", "Person", "Contact", "FirstName");  
  
         ResultSet r = dbmd.getColumns(null, null, "Contact", null);  
         ResultSetMetaData rm = r.getMetaData();   
         int noofcols = rm.getColumnCount();  
  
         if (r.next())  
            for (int i = 0 ; i < noofcols ; i++ )  
            System.out.println(rm.getColumnName( i + 1 ) + ": \t\t" + r.getString( i + 1 ));  
      }  
  
      catch (Exception e) {}  
      finally {}  
   }  
}  

Ayrıca Bkz.

SQLServerDatabaseMetaData Yöntemleri
SQLServerDatabaseMetaData Üyeleri
SQLServerDatabaseMetaData Class