Udostępnij za pośrednictwem


Obsługa rozrzedzenia kolumn w SQL Server Native Client

SQL Server Klient macierzysty obsługuje sparse kolumn.Aby uzyskać więcej informacji o kolumnach sparse w SQL Server, zobacz Przy użyciu kolumn Sparse i Korzystanie z zestawów kolumny.

Więcej informacji o kolumna rozrzedzona obsługi w SQL Server Native Client, zobacz Obsługa rozrzedzenia kolumn (ODBC) i Obsługa rozrzedzenia kolumn (OLE DB).

Informacje dla przykładowych aplikacji, które wykazują tej funkcji, zobacz Zagadnienia dotyczące instalowania przykładów i przykładowych baz danych programu SQL Server.

Scenariusze użytkownika Sparse kolumn i SQL Server Native Client

W następującej tabela zestawiono typowe scenariusze użytkownika SQL Server użytkownikom Native Client sparse kolumny:

Scenariusz

Zachowanie

select * from tableor IOpenRowset::OpenRowset.

Zwraca wszystkie kolumna, które nie są członkami sparse column_set, plus kolumnie XML, zawierającą wartości wszystkich kolumn niż null, będących członkami sparse column_set.

Odwołanie do kolumna, według nazwy.

kolumna można odwoływać się niezależnie od jego kolumna rozrzedzona stan lub column_set członkostwa.

Dostęp column_set kolumn element członkowski za pośrednictwem obliczanej kolumna XML.

kolumna, które są członkami sparse column_set jest możliwy przez wybranie column_set przez nazwę i mogą mieć wartości dodaje i aktualizowane przez aktualizowanie XML w column_set kolumna.

Wartość musi odpowiadać schematu dla column_set kolumny.

Pobieranie metadane dla wszystkich kolumn w tabela za pomocą SQLColumns z wzorzec wyszukiwania kolumna NULL lub % (ODBC); lub za pośrednictwem zestawu zestaw wierszy schematu DBSCHEMA_COLUMNS bez ograniczeń kolumna (OLE DB).

Zwraca wiersza dla wszystkich kolumn, które nie są członkami column_set.Jeśli tabela zawiera rozrzedzone column_set, wiersz zostanie zwrócony w typie.

Należy zauważyć, że nie zwraca metadane dla kolumn, które są członkami column_set.

Pobieranie metadane dla wszystkich kolumn, niezależnie od sparseness lub członkostwa w column_set.To może zwrócić bardzo dużej liczby wierszy.

Ustaw pole deskryptora SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_EXTENDED i wywołanie SQLColumns (ODBC).

Wywołanie IDBSchemaRowset::GetRowset dla zestaw wierszy schematu DBSCHEMA_COLUMNS_EXTENDED (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji korzystającej z SQL Server Native Client z wersji wcześniejszych niż SQL Server 2008.Jednakże taki wniosek może bezpośrednio kwerendy systemu widoki.

Pobieranie metadane tylko do kolumn, które są członkami column_set.To może zwrócić bardzo dużej liczby wierszy.

Ustaw pole deskryptora SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET i wywołanie SQLColumns (ODBC).

Wywołanie IDBSchemaRowset::GetRowset dla zestaw wierszy schematu DBSCHEMA_SPARSE_COLUMN_SET (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji korzystającej z SQL Server Native Client z wersji wcześniejszych niż SQL Server 2008.Jednakże takie stosowanie można zbadać widoki systemu.

Określ, czy kolumna jest rozrzedzony.

Zapoznaj się z kolumna SS_IS_SPARSE SQLColumns (ODBC) zestaw wyników.

Zapoznaj się z kolumna SS_IS_SPARSE zestaw wierszy schematu DBSCHEMA_COLUMNS (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji korzystającej z SQL Server Native Client z wersji wcześniejszych niż SQL Server 2008.Jednakże takie stosowanie można zbadać widoki systemu.

Określa, czy kolumna jest column_set.

Zapoznaj się z kolumna SS_IS_COLUMN_SET SQLColumns zestaw wyników.Lub skontaktuj się z SQL Server kolumna określonego atrybut SQL_CA_SS_IS_COLUMN_SET (ODBC).

Zapoznaj się z kolumna SS_IS_COLUMN_SET zestaw wierszy schematu DBSCHEMA_COLUMNS.Lub skontaktuj się z dwFlags zwrócone przez IColumnsinfo::GetColumnInfo lub DBCOLUMNFLAGS w zestawie zestaw wierszy zwracanych przez IColumnsRowset::GetColumnsRowset.Dla column_set kolumny, DBCOLUMNFLAGS_SS_ISCOLUMNzestaw będzie zestaw (OLE DB).

W tym scenariuszu nie jest możliwe z aplikacji korzystającej z SQL Server Native Client z wersji wcześniejszych niż SQL Server 2008.Jednakże takie stosowanie można zbadać widoki systemu.

Importowanie i eksportowanie sparse kolumn tabela bez przez BCP column_set.

Nie zmiany w zachowaniu z poprzednich wersji programu SQL Server macierzystego klienta.

Importowanie i eksportowanie kolumn rozrzedzania przez BCP tabela z column_set.

column_set Jest importowane i eksportowane w taki sam sposób jak XML; oznacza to, że jako varbinary(max) powiązane jako typ binarny, lub jeśli nvarchar(max) Jeśli związane jako char lub wchar typu.

Kolumny, które są członkami sparse column_set nie są eksportowane jako odrębne kolumny; są one wywożone tylko wartości column_set.

queryout zachowanie BCP.

Żadnej zmiany w obsłudze wyraźnie nazwane kolumny z poprzednich wersji programu SQL Server macierzystego klienta.

Scenariusze obejmujące przywóz i wywóz między tabelami w różnych schematów mogą wymagać specjalnych.

Aby uzyskać więcej informacji na temat BCP Zobacz Kopia luzem (BCP) obsługę Sparse kolumn w dalszej części tego tematu.

Zachowanie klienta niższego poziomu

Klientom niższego poziom zwróci metadane tylko dla kolumn, które nie są członkami sparse column_set dla SQLColumns i DBSCHMA_COLUMNS.Dodatkowe wierszy schematu OLE DB, wprowadzone w SQL Server 2008 Native Client nie będą dostępne, ani modyfikacji, które będą SQLColumns w ODBC za pośrednictwem SQL_SOPT_SS_NAME_SCOPE.

Klientom niższego poziom dostępu do kolumn, które są członkami sparse column_set nazwę i column_set kolumny będą dostępne jako kolumna XML do SQL Server 2005 klientów i ntext kolumny do SQL Server 2000 klientów.

Kopia (BCP) luzem obsługę Sparse kolumn

Żadne zmiany nie zostały BCP API ODBC lub OLE DB dla kolumn rozrzedzony lub column_set funkcji.

Jeśli tabela ma column_set, rozrzedzania kolumny nie są obsługiwane jako odrębne kolumn.Wartości wszystkich kolumn rozrzedzone są uwzględniane wartości column_set, który jest eksportowany w taki sam sposób jak kolumna XML; oznacza to, że, jak varbinary(max) powiązane jako typ binarny, lub jeśli nvarchar(max) Jeśli związane jako char lub wchar typu).Importu column_set wartość musi odpowiadać schemat column_set.

For queryout operations, there is no change to the way explicitly referenced columns are handled.column_set columns have the same behavior as XML columns and sparseness has no effect on the handling of named sparse columns.

Jednak jeśli queryout jest używana do eksportu i odniesienia kolumna rozrzedzonas, które są członkami kolumna rozrzedzona ustawić nazwę, nie można wykonać bezpośredniego przywozu do podobnej strukturze tabela.Wynika to BCP używa metadane zgodne z select * operacji importowania i nie może odpowiadać column_set kolumn element członkowski z metadane.Aby zaimportować column_set kolumn element członkowski indywidualnie, należy zdefiniować widok tabela odwołującej się żądane column_set i kolumny, należy wykonać operację importu przy użyciu widoku.