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.