Aracılığıyla paylaş


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