Veri türü eşlemesi ile dağıtılmış sorgular
Bir ole db sağlayıcı, veri ole db türü tanıtıcıları DBTYPEs adı verilen veri türlerini gösterir.ole db veri türleri veri türleri dönüştürülür ve SQL Server veri eşleme tarafından sistem veri türleri:
ole db veri türleri'nden SQL Server Sistem veri türleri.Bu dönüştürme gerçekleşir, SQL Server okur ole db veri kaynak select deyimleri veya okuma tarafı INSERT, update veya delete deyimleri.
Dan SQL Server Sistem veri türleri için ole db veri türleri.Bu dönüştürme gerçekleşir, SQL Server veriler, çoğunlukla ole db veri kaynak, değiştirilmiş tabloyu dir. bir uzak tablo içine INSERT veya update deyimleri yazma
sql Server için ole db sağlayıcısı veri türü eşleme
Veri türü eşlemesi için ole db Sağlayıcı'dan SQL Server tanımlar izin verilen karşılaştırmaları ve ifadeler, geçerli açık ve olan bağlantılar uzak veri.Eşleme gösterilir tablo , aşağıdaki gibidir.
Uzak tablo sütun ifadelerde türü geçerlilik aşağıdaki kural özetlenebilir: Karşılık gelen eşlenen uzak sütun değeri geçerli Transact-sql ifadesinde ise SQL Server veri türü veri türü eşleştirmesi'nde tablo aynı içerik. geçerlidir
Örneğin, göz önünde ifade: local_column OPERATOR remote_column. Bu ifade*,* local_column yerel tablo sütun ve remote_column bir uzak tablo sütun.ifade geçerli olduğu, operator yerel veri türü için geçerli bir işleç olan sütun ve hangi veri türü için dbtype, remote_sütun eşleştirir.
Benzer şekilde, TONUNU (remote_column as data_type_1) izin verilir, dbtype remote_column eşler SQL Server Sistem veri türü data_type_2 ve açık dönüştürme işlemi data_type_2 için data_type_1 izin.Örneğin, sütun veri türü için sağlayıcı tarafında dbtype_date dönüştürülebilir bir datetime sütununda SQL Server.Ancak, dbtype_date verileri doğrudan dönüştürülemeyen varchar.
Aşağıdaki tablo veri türü eşleştirme gösterir tablo.dbtype göstergesi ve sütun dbcolumnflags değeri kullanarak, buna karşılık gelen bulabilirsiniz SQL Server veri türü.
DBTYPE |
DBCOLUMNFLAGS |
sql Server veri türü |
---|---|---|
DBTYPE_I1 |
numeric(3, 0)1 |
|
DBTYPE_I2 |
smallint |
|
DBTYPE_I4 |
int |
|
DBTYPE_I8 |
bigint |
|
DBTYPE_UI1 |
tinyint |
|
DBTYPE_UI1 |
numeric(5,0) |
|
DBTYPE_UI1 |
numeric(10,0) |
|
DBTYPE_UI1 |
numeric(20,0) |
|
DBTYPE_R4 |
float |
|
DBTYPE_R8 |
real |
|
DBTYPE_NUMERIC |
numeric |
|
DBTYPE_DECIMAL |
decimal |
|
DBTYPE_CY |
money |
|
DBTYPE_BSTR |
DBCOLUMNFLAGS_ISLONG = true |
ntext |
DBTYPE_BSTR |
DBCOLUMNFLAGS_ISFIXEDLENGTH = true |
nchar |
DBTYPE_BSTR |
DBCOLUMNFLAGS_ISFIXEDLENGTH = false |
nvarchar |
DBTYPE_IDISPATCH |
Hata |
|
DBTYPE_ERROR |
Hata |
|
DBTYPE_BOOL |
bit |
|
DBTYPE_VARIANT |
nvarchar(4000) |
|
DBTYPE_IUNKNOWN |
Hata |
|
DBTYPE_GUID |
uniqueidentifier |
|
DBTYPE_BYTES |
DBCOLUMNFLAGS_ISLONG = doğru veya en fazla sütun boyutu > 8.000 bayt. |
image |
DBTYPE_BYTES |
DBCOLUMNFLAGS_ISLONG = true ve sütun boyutu ise, sınırsız uzunluğu. |
varbinary(max) |
DBTYPE_BYTES |
DBCOLUMNFLAGS_ISROWVER = true, DBCOLUMNFLAGS_ISFIXEDLENGTH = true ve sütun boyutu = 8 |
timestamp |
DBTYPE_BYTES |
DBCOLUMNFLAGS_ISFIXEDLENGTH = true |
binary |
DBTYPE_BYTES |
DBCOLUMNFLAGS_ISFIXEDLENGTH = false |
varbinary |
DBTYPE_STR |
DBCOLUMNFLAGS_ISFIXEDLENGTH = true |
char |
DBTYPE_ STR |
DBCOLUMNFLAGS_ISFIXEDLENGTH = false |
varchar |
DBTYPE_STR |
DBCOLUMNFLAGS_ISLONG = doğru veya en fazla sütun boyutu > 8.000 karakter. |
text |
DBTYPE_STR |
DBCOLUMNFLAGS_ISLONG = true ve sütun boyutu ise, sınırsız uzunluğu. |
varchar(max) |
DBTYPE_WSTR |
DBCOLUMNFLAGS_ISFIXED |
nchar |
DBTYPE_WSTR |
DBCOLUMNFLAGS_ISFIXEDLENGTH = false |
nvarchar |
DBTYPE_WSTR |
DBCOLUMNFLAGS_ISLONG = doğru veya en fazla sütun boyutu > 4.000 karakter. |
ntext |
DBTYPE_WSTR |
DBCOLUMNFLAGS_ISLONG = true ve sütun boyutu ise, sınırsız uzunluğu. |
nvarchar(max) |
DBTYPE_UDT |
Eşdeğer SQL Server bir kayıtlı kullanıcı tanımlı tür,. |
|
DBTYPE_DATE |
date, datetime, datetime2, datetimeoffset |
|
DBTYPE_DBDATE |
date, datetime, datetime2, datetimeoffset (Daha az 9.0 uyumluluk düzey.) |
|
DBTYPE_DBTIME |
time, datetime, datetime2, datetimeoffset |
|
DBTYPE_DBTIME_EX |
time, datetime2, datetimeoffset |
DBTYPE_DBTIMESTAMP |
time, date, datetime2, datetimeoffset, datetime |
|
---|---|---|
DBTYPE_DBTIMESTAMP |
time, date, datetime2, datetimeoffset |
|
DBTYPE_DBTIMESTAMP |
time, date, datetime2, datetimeoffset |
|
DBTYPE_ARRAY |
Hata |
|
DBTYPE_BYREF |
Göz ardı |
|
DBTYPE_VECTOR |
Hata |
|
DBTYPE_RESERVED |
Hata |
|
DBTYPE_XML |
xml (Yalnızca doğrudan sorgulara izin verilir.) |
1numeric(p,s) indicates the SQL Server data type numeric with precision p and scale s.
Not
İçin veri dönüştürülmesi gerekiyorsa bir SQL Server cast veya convert kullanarak açık bir dönüştürme gösterilen varsayılandan farklı veri türü işlev, gerekiyor.Daha fazla bilgi için bkz: CAST ve CONVERT (Transact-SQL).
dbtype göstergesi dbcolumnflags bilgi SÜTUNLARI şema satır kümesi geldiği yer sağlayıcı üzerinden ya da değer ve veya ile IColumnsInfo arabirim.SÜTUNLARI şema satır kümesi için data_type ve column_flags sütunlar dbtype ve dbcolumnflags değerleri temsil eder.İçin IColumnsInfo::GetColumnInfo arabirim, wType ve dwFlags DBCOLUMNINFO yapısı üyeleri temsil eden bu değerleri.
ole db sağlayıcısı için sql Server veri türü eşleştirme
SQL Server Sistem veri türleri eşlemek için ole db türü önceki alıştırmada gösterilen eşlemesi kullanarak tablo.Eşlemeyi bir SQL Server türü S1 belirli bir ole db türü için t bu durumlardan herhangi biri mevcut ise izin verilir:
Karşılık gelen eşleme veri türü eşleme bulunabilir tablo.
İzin verilen bir örtük dönüştürme veri türünün yok S1 başka bir SQL Server veri türü S2 ve bir "kaynak" eşleme S2 için t veri türü eşleme tanımlanmış tablo.
Tarih ve saat tarih uzak sunucudan alınan sql Server 2008 eşleme
Aşağıdaki tablo gösterir date ve time veri türü eşleştirme için gönderilen örneğine bir ole db veri kaynağından veri SQL Server 2008.Bu dönüştürme gerçekleşir, SQL Server 2008 okur veri ole db veri kaynak, select deyimleri veya update, INSERT veya delete deyimleri okuma tarafında. Uzak bir sütun ise bir date, time, dateime2, veya datetimeoffset veri türü, veritabanı uyumluluk düzey 100 veya daha yüksek ise türü döndürdü.Uyumluluk düzey daha düşük ise, SQL Server 2008 yaptığı bir dönüþtürme datetime.
ole db türü |
Uzak sunucu, sql Server 2008 ise İade: |
Uzak sunucu, sql Server 2005 veya sql Server 2000 dönüş ise: |
Uzak sunucu sql sunucusu ise ve yerel sql Server 2008 veritabanı uyumluluk düzey 90 dönüş olur ise: |
Uzak sunucu sql sunucusu ise ve yerel sql Server 2008 veritabanı uyumluluk düzey 100 dönüş olur ise: |
---|---|---|---|---|
DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
datetime(uzak sütun olabilir ya da datetime or smalldatetime) |
datetime(uzak sütun olabilir ya da datetime or smalldatetime) |
datetime |
datetime2(7) |
DwFlags olan ile DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
datetime2 |
Uygulanabilir değil |
Uygulanabilir değil |
Uygulanabilir değil |
DBTYPE_DBDATE |
date |
Uygulanabilir değil |
datetime |
date |
DBTYPE_DBTIME |
time(0) |
Uygulanabilir değil |
datetime |
time(0) |
DBTYPE_DBTIME2 |
time(n) |
Uygulanabilir değil |
Uygulanabilir değil |
Uygulanabilir değil |
DBTYPE_DBTIMESTAMPOFFSET |
datetimeoffset |
Uygulanabilir değil |
Uygulanabilir değil |
Uygulanabilir değil |
Tarih ve saat tarih bir uzak sunucuya gönderilen sql Server 2008 eşleme
Aşağıdaki tablo gösterir date ve time veri türü eşleme veri gönderilen örneğinden SQL Server 2008 için bir ole db veri hedef.Bu dönüştürme gerçekleşir, SQL Server 2008 veriler, çoğunlukla ole db veri kaynak, değiştirilmiş tabloyu dir. bir uzak tablo içine INSERT veya update deyimleri yazma
sql Server 2008 veri türü |
Uzak sunucu, sql Server 2008 ise ile bağlayın: |
Uzak sunucu, sql Server 2005 veya sql Server 2000 bağlama ile ise: |
Uzak sunucu ise, SQL Server ile bağlayın: |
---|---|---|---|
datetime, smalldatetime |
DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
datetime2(n) |
DwFlags olan ile DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
date |
DBTYPE_DBDATE |
DBTYPE_DBDATE |
DBTYPE_DBDATE |
time(0) |
DBTYPE_DBTIME |
DBTYPE_DBTIME |
DBTYPE_DBTIME |
time(n)(0 < n <= 7) |
DBTYPE_DBTIMESTAMP (ile bekleyen tarih bölümü) dwFlags olan ile küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak |
DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme olarak DBPARAMFLAGS_SS_ISVARIABLESCALE |
DBTYPE_DBTIMESTAMP (ile bekleyen tarih bölümü) |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
Uygulanabilir değil |
Uygulanabilir değil |
Tarih ve saat veri türleri sql Server 2008 uzak sorgu yürütme
SQL Server 2008sahip uzak nesneleri başvuran bir sorgu yürütür time, date, datetime2, veya datetimoffset veri türleri ya da yerel veya uzak bir sunucu.Karar sürüm veya sağlayıcı uzak sunucu ve başvuru türüne göre değişir.Kabul başvuru uzak bir sütun veya bir sabit, değişken veya yerel sütun türleridir.
Olmayan-sql Server sağlayıcıları
Destek için kısmi time, date, ve datetime2 veri türleri benzer türleri için uzak sunucuda bulunduğunda olmayan-SQL Server sağlayıcıları.Bu sağlayıcılar bu türleri için destek bildirmek için bir yol yoktur.
Aşağıdaki tablo uzak veya yerel sunucu üzerinde bir sorgu yürütülür olup olmadığını gösterir.İlk sütun, yerel sunucuda veri türünü gösterir.İkinci sütun karşılık gelen ole db veri gösterileri yazın yerel örnek SQL Server 2008 kullandığı için uzak sunucu.Son üç sütun sorgu uzak veya yerel sunucuda yürütülür olup olmadığını gösterir.Yürütme konumu, sürüm veya uzak sunucu türüne göre değişir.
Yerel sunucu veri türü |
Uzak sunucu yerel sql Server 2008'e kadar kullanılan ole db veri türü |
sql Server 2008 veya sonraki bir sürüm, uzak sunucu |
sql Server 2005 uzak sunucu |
Uzak sunucu olmayan mssql |
---|---|---|---|---|
datetime |
DBTYPE_DBTIMESTAMP |
Uzak |
Uzak |
Uzak |
smalldatetime |
DBTYPE_DBTIMESTAMP |
Uzak |
Uzak |
Uzak |
datetime2 |
DBTYPE_DBTIMESTAMP |
Uzak |
Yerel |
Uzak |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
Uzak |
Yerel |
Yerel |
date |
DBTYPE_DBDATE |
Uzak |
Yerel |
Uzak |
time(>0) |
DBTYPE_DBTIME2 |
Uzak |
Yerel |
Yerel |
time(0) |
DBTYPE_DBTIME2 |
Uzak |
Yerel |
Uzak |
Ayrıca bkz.