Aracılığıyla paylaş


Veri türü eşleştirme 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.Veri türleri, OLE DB veri türleri arasında dönüştürülür ve SQL Server veri eşleme tarafından sistem veri türleri:

  • OLE DB veri türlerinden için SQL Server Sistem veri türleri. Bu dönüştürme oluşur, SQL Server OLE DB veri verileri okur kaynak, SELECT ifadelerine veya UPDATE, INSERT veya DELETE deyimleri, okuma tarafı.

  • Kimden SQL Server Sistem veri türleri için OLE DB veri türleri. Bu dönüştürme oluşur, SQL Server çoğunlukla INSERT veya UPDATE deyimi, değiştirilmiş bir tabloyu bir uzak tablo olduğu OLE DB veri kaynağı içine, verileri yazar.

SQL Server için OLE DB Sağlayıcı'dan veri türü eşleştirme

Veri eşleme için OLE DB sağlayıcı türü SQL Server izin verilen karşılaştırmalar, ifadeler ve uzak veri içeren geçerli açık dönüştürme tanımlar. Eşlemeyi gösterilen tablo, izler.

Ifadelerde bir uzak tablo sütun türü geçerliliği aşağıdaki kuralla özetlenebilir: Uzak sütun değeri bir Transact-SQL'DE geçerlidir ifade ilgili eşleştirilmiş, SQL Server Veri türü eşleştirme tablosuna veri türünü, aynı bağlamda geçerlidir.

Örneğin, ifade göz önünde bulundurun: local_column OPERATOR remote_column. Bu ifade , bir yerel tabloya sütun ve local_column ise remote_column bir uzak tablo sütundur.Deyimin geçerli olup olmadığını İŞLETMEN veri türü olan ve yerel sütunun veri türü için geçerli bir işleç olan DBTYPEremote_column eşleştirir.

Benzer şekilde, (CASTremote_column OLARAK data_type_1) izin verilir, DBTYPE remote_column için eşleştirir.SQL Server Sistem veri türü data_type_2 ve açık dönüştürme data_type_2 Kime data_type_1 izin verilir. Bir sütun, veri türü sağlayıcı tarafındaki DBTYPE_DATE dönüştürülebilir bir datetime sütun SQL Server. Ancak, DBTYPE_DATE verileri doğrudan dönüştürülemez varchar.

Aşağıdaki tablo, veri türü eşleştirme tablosunu gösterir.DBTYPE göstergesi ve sütun DBCOLUMNFLAGS değerini kullanarak ilgili bulabilirsiniz SQL Server Veri Türü.

dbtype

dbcolumnflags

SQL Server veri türü

dbtype_i1

numeric(3, 0)1

DBTYPE_İ2

smallint

DBTYPE_İ4

int

DBTYPE_İ8

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 ya da en çok sütun boyutu > 8.000 bayt.

image

dbtype_bytes

DBCOLUMNFLAGS_ISLONG = true ve sütun boyutu sınırsız uzunluğudur.

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 ya da en çok sütun boyutu > 8.000 karakter.

text

dbtype_str

DBCOLUMNFLAGS_ISLONG = true ve sütun boyutu sınırsız uzunluğudur.

varchar(max)

dbtype_wstr

dbcolumnflags_isfixed

nchar

dbtype_wstr

DBCOLUMNFLAGS_ISFIXEDLENGTH = false

nvarchar

dbtype_wstr

DBCOLUMNFLAGS_ISLONG = doğru ya da en çok sütun boyutu > 4.000 karakter.

ntext

dbtype_wstr

DBCOLUMNFLAGS_ISLONG = true ve sütun boyutu sınırsız uzunluğudur.

nvarchar(max)

dbtype_udt

Eşdeğeri SQL Server Kullanıcı tanımlı tür, kayıtlı.

dbtype_date

date, datetime, datetime2, datetimeoffset

dbtype_dbdate

date, datetime, datetime2, datetimeoffset (Uyumluluk düzey 9. 0'dan daha az olur.)

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

Yoksayıldı

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

Veriler için dönüştürülmesi gerekiyorsa bir SQL Server veri türü, CONVERT veya CAST işlevini kullanarak açık dönüştürme, gösterilen varsayılandan farklı bu güvenlik açığından gereklidir. Daha fazla bilgi için bkz:CAST ve CONVERT (Transact-SQL).

SÜTUNSAY şema satır kümesi sağlayıcı aracılığıyla da geldiği bilgi DBTYPE göstergesi ve DBCOLUMNFLAGS değeri veya ile IColumnsInfo arabirim.SÜTUNSAY şema satır kümesi için DATA_TYPE ve COLUMN_FLAGS sütunları DBTYPE ve DBCOLUMNFLAGS değerleri gösterir.Için IColumnsInfo::GetColumnInfo arabirimwType ve dwFlags DBCOLUMNINFO yapı üyeleri bu değerleri gösterir.

SQL Server OLE DB sağlayıcı, veri türü eşleştirme

SQL Server önceki içinde gösterilen eşlemesi kullanarak, sistem veri türleri için OLE DB türleri eşleştirin tablo.Bir eşleme bir SQL Server TYPE S1 bir özel OLE DB'ye yazınt izin verilir, bu koşullardan biri doğruysa:

  • Veri türü eşlemesindeki karşılık gelen eşleme bulunan tablo.

  • Bir izin verilen örtülü veri türü dönüştürme yok S1 başka bir SQL Server Veri Türü % S2 ve bir eşleme% S2 to t veri türü eşleştirme tablosunda tanımlanır.

SQL Server 2008 tarih ve saat ve tarih, eşleme, uzak bir sunucudan alınan

Aşağıdaki gösterildiği tablo date ve time veri türü eşleştirme için OLE DB veri kaynağından gönderilen verilerde bir örnek, SQL Server 2008. Bu dönüştürme oluşur, SQL Server 2008 OLE DB veri verileri okur kaynak, SELECT ifadelerine veya UPDATE, INSERT veya DELETE deyimleri, okuma tarafı. Uzak bir sütun ise bir date, time, dateime2, veya datetimeoffset veri türü, veritabanı uyumluluk düzey, 100 veya daha yüksek ise, bir tür döndürdü. Uyumluluk düzeyini daha düşük olduğunda SQL Server 2008 bir örtülü dönüştürmeye yapar. datetime.

OLE DB türü

Uzak sunucu, SQL Server 2008

return:

Uzak sunucu, SQL Server 2005 veya SQL Server 2000 iade ise:

Uzak sunucu, SQL Server değil ise yerel SQL Server 2008 veritabanı uyumluluk düzey 90 iade edilir:

Uzak sunucu, SQL Server değil ise yerel SQL Server 2008 veritabanı uyumluluk düzey 100 iade edilir:

DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

datetime (uzak bir sütun ya da olabilir datetime veya smalldatetime)

datetime (uzak bir sütun ya da olabilir datetime veya smalldatetime)

datetime

datetime2(7)

DwFlags olan ile DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

datetime2

Geçerli değil

Geçerli değil

Geçerli değil

dbtype_dbdate

date

Geçerli değil

datetime

date

dbtype_dbtime

time(0)

Geçerli değil

datetime

time(0)

DBTYPE_DBTİME2

time(n)

Geçerli değil

Geçerli değil

Geçerli değil

dbtype_dbtimestampoffset

datetimeoffset

Geçerli değil

Geçerli değil

Geçerli değil

SQL Server 2008 eşleme tarih ve saat ve tarih, bir uzak sunucusuna gönderildi.

Aşağıdaki gösterildiği tablo date ve time veri eşleme bir örneğinden gönderilen veri türü SQL Server 2008 OLE DB veri hedef. Bu dönüştürme oluşur, SQL Server 2008 çoğunlukla INSERT veya UPDATE deyimi, değiştirilmiş bir tabloyu bir uzak tablo olduğu OLE DB veri kaynağı içine, verileri yazar.

SQL Server 2008 veri türü

Uzak sunucu, SQL Server 2008

ile bağlama:

Uzak sunucu, SQL Server 2005 veya SQL Server 2000 bağlama ile ise:

Uzak sunucu ile SQL Server bağlaması değilse:

datetime, smalldatetime

DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

datetime2(n)

DwFlags olan ile DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

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ü)

DBPARAMFLAGS_SS_ISVARIABLESCALE ayarlanan dwFlags ile

DwFlags olmaksızın DBTYPE_DBTIMESTAMP küme DBPARAMFLAGS_SS_ISVARIABLESCALE olarak

DBTYPE_DBTIMESTAMP (ile bekleyen tarih bölümü)

datetimeoffset

dbtype_dbtimestampoffset

Geçerli değil

Geçerli değil

SQL Server 2008 uzaktan sorgu yürütme tarih ve saat veri türleri

SQL Server 2008 sahip uzak nesne başvurusu bir sorgu yürütür time, date, datetime2, veya datetimoffset yerel veya uzaktaki sunucu veri türleri. Kararınızı, sürüm ya da uzak sunucu başvuru türü ve sağlayıcı bağlıdır.Kabul başvuru uzak bir sütun ya da sabit, değişken veya yerel bir sütun türleridir.

Olmayan SQL Server sağlayıcıları

Desteği için kısmi değil time, date, ve datetime2 veri türleri, benzer türleri için bir 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, sorgu uzak veya yerel sunucu üzerinde yürütülen gösterir.Ilk sütun, yerel sunucu üzerinde veri türünü gösterir.Ilgili OLE DB veri türü, ikinci sütun gösterir yerel örnek SQL Server 2008 Uzak sunucu için kullanır. Son üç sütun, sorgu uzak veya yerel sunucu üzerinde yürütülen gösterir.Yürütme konumu, sürüm ya da uzak sunucu türüne bağlıdır.

Yerel sunucu veri türü

Uzak sunucu tarafından yerel SQL Server 2008'de kullanılan bir OLE DB veri türü

SQL Server 2008 veya sonraki 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_DBTİME2

Uzak

Yerel

Yerel

time(0)

DBTYPE_DBTİME2

Uzak

Yerel

Uzak