Udostępnij za pośrednictwem


Źródła danych i wiązania (Analysis Services - wielowymiarowych danych)

Moduły, wymiary i inne Usługi Analysis Services obiekty mogą być powiązane z źródło danych.Źródło danych może być jednym z następujących obiektów:

  • Źródło danych relacyjnych.

  • Usługi Analysis Services Rurociąg danego zestawu zestaw wierszy (lub podzielony na rozdziały zestawów zestaw wierszy).

Sposób wyrażania źródło danych zależy od typu źródło danych.Na przykład źródło danych relacyjnych jest rozpoznawane przez połączenie ciąg.Aby uzyskać więcej informacji na temat źródeł danych, zobacz Źródła danych (Analysis Services - wielowymiarowych danych).

Niezależnie od źródło danych używane Widok źródło danych (DSV) zawiera metadane dla źródło danych.W ten sposób powiązania dla moduł lub innych Usługi Analysis Services obiekty są wyrażone jako powiązania DSV.Te powiązania mogą zawierać wiązania, aby obiekty logiczne — obiekty, takie jak widoki, kolumn obliczeniowych i relacje, które fizycznie nie istnieją w danych źródło.Za pomocą DSV powiązać obiekty logiczne jest nowa SQL Server 2008.Dla wystąpienie, SQL Server 2000, miara OLAP można określić wyrażenie jako jej źródło danych.Jednakże w SQL Server 2005 i SQL Server 2008, Usługi Analysis Services dodaje kolumna obliczeniowa, która hermetyzuje wyrażenie DSV i następnie wiąże miara OLAP do tej kolumny w pliku DSV.Aby uzyskać więcej informacji o DSVs, zobacz Widoki źródła danych (Analysis Services - wielowymiarowych danych).

Każdy Usługi Analysis Services wiąże obiekt źródło danych w własny sposób.Dodatkowo wiązania danych dla tych obiektów i definicji źródło danych dostępne są równo z definicji obiektu z danymi (na przykład wymiar) lub wiersza jako oddzielny zestaw definicji.

Typy danych Analysis Services

Typy danych, które są używane w powiązaniach muszą być zgodne typy danych obsługiwane przez Usługi Analysis Services.Następujące typy danych są zdefiniowane w Usługi Analysis Services:

Typ danych Analysis Services

Opis

BigInt

Całkowitą podpisane 64-bitowych.Ten typ danych jest mapowany typu Int64 danych wewnątrz firmy Microsoft .NET Framework i typu danych DBTYPE_I8 wewnątrz OLE DB.

Bool

Wartość logiczna.Ten typ danych jest mapowany na typ wartość logiczna wewnątrz .NET Framework i typu danych DBTYPE_BOOL wewnątrz OLE DB.

Waluta

Wartość waluty z zakresu od -263 (lub-922,337,203,685,477.5808) do 263-1 (lub +922,337,203,685,477.5807) z dokładnością do dziesięciotysięcznej jednostki waluty.Ten typ danych jest mapowany na typ danych dziesiętny wewnątrz .NET Framework i typu danych DBTYPE_CY wewnątrz OLE DB.

Data

Danych daty przechowywane jako liczba zmiennoprzecinkowa podwójnej precyzji.Cała część jest liczbą dni od 30 grudnia 1899 roku podczas część ułamkową część doby.Ten typ danych jest mapowany na typ danych Data/Godzina wewnątrz .NET Framework i typu danych DBTYPE_DATE wewnątrz OLE DB.

Double

Liczba zmiennoprzecinkowa podwójnej precyzji w ramach zakres od - 1, 79E + 308 do 1.79E + 308.Ten typ danych mapuje typ danych podwójne wewnątrz .NET Framework i typu danych DBTYPE_R8 wewnątrz OLE DB.

Liczba całkowita

Całkowitą podpisane 32-bitowych.Ten typ danych jest mapowany do typu Int32 wewnątrz .NET Framework i typu danych DBTYPE_I4 wewnątrz OLE DB.

Pojedynczy

Liczba zmiennoprzecinkowa pojedyncza precyzja, w zakres z - 3.40E + 38 do 3.40E + 38.Ten typ danych jest mapowany na typ danych jednego wewnątrz .NET Framework i typu danych DBTYPE_R4 wewnątrz OLE DB.

SmallInt

Całkowitą podpisane 16-bitowych.Ten typ danych jest mapowany typu Int16 danych wewnątrz .NET Framework i typu danych DBTYPE_I2 wewnątrz OLE DB.

TinyInt

8-Bitowa podpisana liczba całkowita.Ten typ danych mapuje typ danych SByte wewnątrz .NET Framework i typu danych DBTYPE_I1 wewnątrz OLE DB.

UnsignedBigInt

64-Bitową całkowitą bez znaku.Ten typ danych jest mapowany typu UInt64 danych wewnątrz .NET Framework i typu danych DBTYPE_UI8 wewnątrz OLE DB.

UnsignedInt

32-Bitową całkowitą bez znaku.Ten typ danych jest mapowany typu UInt32 danych wewnątrz .NET Framework i typu danych DBTYPE_UI4 wewnątrz OLE DB.

UnsignedSmallInt

16-Bitową całkowitą bez znaku.Ten typ danych jest mapowany typu UInt16 danych wewnątrz .NET Framework i typu danych DBTYPE_UI2 wewnątrz OLE DB.

WChar

Zakończony znakiem null strumień znaków Unicode.Ten typ danych jest mapowany na typ danych String wewnątrz .NET Framework i typu danych DBTYPE_WSTR wewnątrz OLE DB.

Wszystkie dane, które odebrane ze źródło danych jest konwertowana na SSAS typu określonego w powiązanie (zwykle podczas przetwarzania).An error is raised if the conversion cannot be performed (for example, String to Int).Business Intelligence Development Studio usually sets the data type in the binding to the one that best matches the source type in the data source.Na przykład, są mapowane SQL typy, datę DateTime, SmallDateTime, DateTime2, DateTimeOffset SSAS daty i typ SQL, czas jest mapowany na ciąg.

Powiązania dla wymiarów

Każdy atrybut wymiar jest związany z kolumna w plik DSV.Wszystkie atrybuty wymiar muszą pochodzić z jednego źródło danych.Jednak atrybuty mogą być powiązany z kolumn w różnych tabelach.Relacje między tabelami są zdefiniowane w DSV.przypadek gdy istnieje więcej niż jeden zestaw relacji do tej samej tabeli może być konieczne wprowadzenie nazwaną kwerendę w DSV jako tabela "alias".Wyrażenia i filtry są zdefiniowane w DSV za pomocą nazwanych obliczeń i o nazwie kwerend.

Powiązania dla Element MeasureGroups, środki i partycje

Każdy grupa miar zawiera następujące domyślne powiązania:

  • Grupy miar jest związany z tabela w plik DSV (na przykład MeasureGroup.Source).

  • Każdy miara jest związany z kolumna w tabela (na przykład Measure.ValueColumn.Source).

  • Każdy grupa miar wymiar ma zestaw atrybuty ziarnistość definiujących ziarnistość grupa miar.Każdy z tych atrybut musi być powiązany z kolumna lub kolumn tabela fakt zawierające klucz atrybut.(Aby uzyskać więcej informacji o atrybutach ziarnistość Zobacz atrybuty ziarnistość MeasureGroup w dalszej części tego tematu).

Te domyślne powiązania mogą zostać zastąpione selektywnie dla każdej partycji.Każdej partycji można określić inne źródło danych, nazwę tabela lub kwerendzie lub wyrażenie filtru.Najczęściej strategii partycjonowanie jest zastąpienie tabela dla każdej partycjonowanie, korzystając z tego samego źródło danych.Alternatywy obejmują różne filtra na partycji lub zmienianie źródło danych.

Domyślne źródło danych musi być zdefiniowana w pliku DSV, zapewniając w ten sposób informacje o schemacie, łącznie ze szczegółami dotyczącymi relacji.Wszelkie dodatkowe tabele lub kwerendy, określone poziom partycji nie musi być wymieniony w DSV, ale musi mieć tego samego schematu tabela domyślne zdefiniowane dla grupa miar, lub przynajmniej musi zawierać wszystkie kolumny używane przez środki lub ziarnistość atrybutów.Szczegółowe powiązania na miara i atrybut szczegółowości nie może być zastąpiona poziom partycji i to one są przyjmowane jako do kolumn zdefiniowanych dla grupa miar.Dlatego jeśli partycja używa źródło danych w rzeczywistości mają inny schemat TableDefinition kwerendy zdefiniowanej dla partycji musi skutkować tego samego schematu Schema używane przez grupa miar.

Atrybuty rozdrobnienie MeasureGroup

Gdy szczegółowości grupa miar odpowiada ziarnistość znane w bazie danych i istnieje relacja bezpośrednia z tabeli fakt tabela wymiarówów, musi tylko atrybut szczegółowości powiązać odpowiednią kolumna klucz obcy lub kolumna w tabeli fakt.Na przykład rozważmy następujące tabele fakt i wymiar:

Sales(RequestedDate, OrderedProductID, ReplacementProductID, Qty)

Product(ProductID, ProductName,Category)

 

Relation: Sales.OrderedProductID -> Product.ProductID

Relation: Sales.ReplacementProductID -> Product.ProductID

 

Jeśli analizowane przez zamówionych produktów zamówionych produktu na sprzedaż roli wymiar, produkt atrybut szczegółowości musiałoby Sales.OrderedProductID.

Może być jednak czas, gdy GranularityAttributes może nie istnieć jako kolumny na tabela fakt.Na przykład GranularityAttributes może nie istnieć jako kolumny w następujących okolicznościach:

  • ziarnistość OLAP jest gruboziarnisty niż ziarnistość w źródło.

  • Pośrednie tabeli interposes między tabela fakt i tabela wymiarów.

  • Klucz wymiaru nie jest taki sam, jak klucz podstawowy tabela wymiarów.

W takich przypadkach DSV musi być zdefiniowany tak, aby GranularityAttributes istnieje w tabela fakt.Na przykład kwerendy o nazwie lub kolumna obliczeniowa mogą zostać wprowadzone.

Na przykład w tym samym przykładzie tabelach jak powyżej, gdyby ziarnistość według kategorii, następnie widok sprzedaży mogą zostać wprowadzone:

SalesWithCategory(RequestedDate, OrderedProductID, ReplacementProductID, Qty, OrderedProductCategory)

SELECT Sales.*, Product.Category AS OrderedProductCategory

FROM Sales INNER JOIN Product

ON Sales.OrderedProductID = Product.ProductID

 

przypadek kategorii GranularityAttribute jest związany z SalesWithCategory.OrderedProductCategory.

Migrowanie z obiektów Decision Support Objects

Decision Support Objects (DSO) 8.0 umożliwia PartitionMeasures do odbicia.Dlatego strategii migracji w tych przypadkach jest skonstruować kwerendę właściwe.

Podobnie nie jest możliwe ponownie powiązać atrybutów wymiar partycji, ale DSO 8.0 umożliwia ponownego tego wiązania również.Strategia migracji w tych przypadkach jest określenie niezbędnych o nazwie kwerend w DSV, tak aby te same tabele i kolumny istnieje w DSV partycji jako tabele i kolumny, które są używane dla wymiar.Tych przypadkach może wymagać przyjęcia proste migracji, w którym klauzula sprzężenia/From/filtr jest mapowany do pojedynczego o nazwie kwerendy zamiast uporządkowany zestaw powiązanych tabel.Jak DSO 8.0 pozwala PartitionDimensions do odbijające, nawet jeśli partycja używa tego samego źródło danych, migracji może również wymagać wiele DSVs dla tego samego źródło danych.

DSO 8.0 odpowiednie powiązania mogą być wyrażone na dwa różne sposoby w zależności od tego, czy zoptymalizowane schematy są zatrudnieni, przez powiązanie albo klucz podstawowy tabela wymiarów lub klucz obcy na tabela fakt.W ASSL dwie różne formy nie są rozróżniane.

To samo podejście do wiązania ma zastosowanie nawet dla partycji przy użyciu źródło danych, który nie zawiera tabele wymiarów, ponieważ powiązania kolumna klucz obcy w tabela fakt, a nie do kolumna klucz podstawowy tabela wymiarów.

Powiązania dla modeli wyszukiwania

model wyszukiwania jest albo relacyjnej lub OLAP.Powiązania danych relacyjnych model wyszukiwania różnią się znacznie od powiązań dla OLAP model wyszukiwania.

Powiązania z modelem relacyjnym górnictwo

Relacyjne model wyszukiwania zależy od relacji zdefiniowanych w pliku DSV rozwiązania niejasności odnośnie której kolumny są powiązane z których źródeł danych.W relacyjnej model wyszukiwania, powiązania danych wykonaj następujące reguły:

  • Każda kolumna-zagnieżdżona tabela jest związany z kolumny przypadek tabeli lub tabeli powiązany z tabelą przypadek (po relacji wiele do jednego lub jeden do jednego).DSV określa relacje między tabelami.

  • Każda kolumna zagnieżdżona tabela jest powiązana źródło tabeli.Kolumny własnością kolumna tabela zagnieżdżone są powiązane z kolumnami na tym źródło tabela lub tabela związane z źródło tabela.(Ponownie, powiązanie następuje relacji wiele do jednego lub jeden do jednego.) model wyszukiwania Powiązania nie zapewniają Złącz ścieżka do tabela zagnieżdżonej.Zamiast tego relacji zdefiniowanych w DSV dostarczyć te informacje.

Powiązania dla modelu OLAP górnictwo

Modeli wyszukiwania OLAP nie mają odpowiednika plik DSV.Dlatego powiązania danych musi dostarczyć wszelkich uściślania między kolumnami i źródeł danych.Na przykład model wyszukiwania mogą być oparte na moduł Sprzedaż i kolumny mogą być oparte na ilość, kwota i nazwa produktu.Alternatywnie model wyszukiwania mogą być oparte na produkt, a kolumny mogą być oparte na nazwę produktu, kolor produktu i tabela zagnieżdżona o ilość sprzedaży

W OLAP model wyszukiwania, powiązania danych wykonaj następujące reguły:

  • Każda kolumna-zagnieżdżona tabela jest związany z miara na moduł atrybut w wymiarze moduł (Określanie CubeDimension do disambiguate w przypadek wymiar ról), lub atrybut w wymiarze.

  • Każda kolumna tabela zagnieżdżonej jest powiązane z CubeDimension.Oznacza to, że definiuje sposób przejdź z wymiar moduł powiązanych lub (przypadek mniej popularne tabel zagnieżdżonych) z moduł do jednego z jego wymiary.

Powiązania wiersza

Powiązania wiersza umożliwiają tymczasowo zmienić istniejące powiązania danych na czas trwania polecenia.Powiązania wiersza odnoszą się do powiązania, które są zawarte w polecenie i nie są zachowywane.Powiązania wiersza stosuje się tylko wtedy, gdy wykonuje tym poleceniem.Natomiast wewnętrzne powiązania są zawarte w definicji obiektu ASSL i utrzymują z definicji obiektu metadane serwera.

Powiązania wiersza podane na albo umożliwia ASSL Process polecenia, jeżeli nie jest w partia lub w Batch polecenia.Jeśli poza linię powiązanie są określone w Batch polecenia wszystkie powiązanie określone w Batch polecenia Utwórz nowy kontekst powiązanie, w którym wszystkie Process polecenia partia Uruchom.Ten nowy kontekst powiązanie zawiera obiekty, które pośrednio są przetwarzane z powodu Process polecenia.

Określono powiązania wiersza polecenia zastępują one powiązań wewnętrznych zawartych w utrwalonym DDL dla określonych obiektów.Przetworzone obiekty te mogą obejmować obiekt bezpośrednio o nazwie w Process , albo polecenia, mogą zawierać inne obiekty, których przetwarzanie jest automatycznie inicjowane jako część przetwarzania.

Powiązania wiersza są określane przez tym opcjonalnej Bindings obiektu kolekcja z przetwarzania polecenia.Opcjonalna Bindings Kolekcja zawiera następujące elementy.

Właściwość

Kardynalność

Typ

Opis

Binding

0-n

Binding

Zawiera kolekcja nowych powiązań.

DataSource

0-1

DataSource

Zastępuje DataSource z serwera, który będzie używany.

DataSourceView

0-1

DataSourceView

Zastępuje DataSourceView z

serwer, który będzie używany.

Wszystkie elementy, które odnoszą się do wiązania wiersza są opcjonalne.Żadne elementy nie określono ASSL używa specyfikacji zawartych w utrwalonym obiektu DDL.Specyfikacja DataSource lub DataSourceView w Process polecenia jest opcjonalne.Jeśli DataSource lub DataSourceView są określone wystąpienia nie są tworzone i nie są zachowywane po Process polecenia zakończyło.

Definicja typu wiązania-wiersza

Poza linii Bindings kolekcja, ASSL umożliwia zbieranie powiązań dla wielu obiektów każdego Binding.Każdy Binding zawiera odwołanie do obiektu rozszerzonej, która jest podobna do odwołania do obiektu, ale mogą odwoływać się do również obiekty pomocnicze (na przykład wymiaru atrybuty i grupa miar atrybuty).Ten obiekt ma postać płaski typowe dla Object element Process poleceń, z wyjątkiem, że <obiektu></obiekt> znaczniki nie są obecne.

Każdy obiekt, dla którego określono powiązanie jest identyfikowany przez element XML formularza <obiektu>Identyfikatora (na przykład DimensionID).Po zidentyfikowaniu obiektu szczegółowo możliwie z formularzem <obiektu>IDENTYFIKATORA, a następnie określenie elementu, dla którego określono jest powiązanie, który zwykle Source.Jest wspólne przypadek należy zauważyć, w którym Source jest właściwość na DataItem, która jest przypadek powiązania kolumna atrybut.przypadek nieokreślenia DataItem tag; Zamiast tego wystarczy określić Source właściwość, tak jakby był bezpośrednio na kolumna do granicy.

KeyColumnssą identyfikowane przez ich kolejnością wewnątrz KeyColumns kolekcja.Istnieje nie jest możliwe określenie, na przykład tylko pierwszym i trzecim kolumny klucz atrybut, ponieważ sposobem wskazują, że druga kolumna klucz jest pominięte.Wszystkie kolumny klucz musi być obecny limit linii powiązanie dla atrybut wymiar.

Translations, chociaż posiadają żadnego Identyfikatora semantycznie są identyfikowane przez ich języka.Dlatego Translations wewnątrz Binding konieczne jest uwzględnienie ich identyfikator języka.

Jeden dodatkowy element dozwolone Binding nie istnieje, bezpośrednio w DDL jest ParentColumnID, który jest używany dla tabel zagnieżdżonych do wyszukiwanie danych.W tym przypadek jest konieczne do identyfikacji kolumna nadrzędnej w tabela zagnieżdżonej, dla których dostępny jest powiązanie.

Przykłady

Następujące próbki w ASSL, pokazują, jak używać ProcessFull i ProcessAdd polecenia nad istniejącego wymiar i przekazują dane w polecenia.

Przykładowa baza danych jest biblioteki bazy danych, która zawiera wymiar pożyczek.

Skrypt w celu utworzenia bazy danych i wymiar jest na końcu tej sekcji.

Ostrzeżenie

Próbki te są przeznaczone do użycia z usług Analysis Services w trybie VertiPaq.

Polecenie ProcessFull

Następujące polecenie ASSL jest operacją ProcessFull nad wymiar pożyczek w bibliotecznej bazie danych.Aby uruchomić polecenie, należy skopiować i wkleić skrypt w oknie XMLA SQL Server Management Studio i ją wykonać.

Uwaga następujące elementy w skrypcie:

  1. A <Bindings> element, niezwłocznie po <Object> specyfikacji z wiązania dla wszystkich atrybutów w wymiar.Wszystkie <Binding> elementów powiązać konkretny atrybut do kolumna w nadchodzącym źródło.Typ źródło jest ColumnBinding, wiąże kolumna, ale nie w tabela.

  2. <DataSource> Dla powiązania jest zadeklarowana niezwłocznie po <Bindings> elementu.Źródło jest zadeklarowana jako typu PushedDataSource.Element główny łączy parametr, który zawiera rzeczywiste dane źródło danych.<EndOfData> Element określa parametr, który sygnalizuje koniec strumienia danych.

  3. Pierwszy element w strumieniu danych (wewnątrz InputRowset parameter) definicji schematu danych wysyłanych.Ten schemat definiuje, jak dane są odczytu i mapowania dla kolumny.Po definicji schematu można wykonać wierszy.

  4. Koniec strumienia danych jest sygnalizowane przez parametr EndOfInputRowset z wartością true.Jeśli dane muszą być przesyłane za pośrednictwem kilku wiadomości następnie nawet w ostatniej wiadomości wartości parametru EndOfInputRowset powinien być zestaw na wartość false.

    Ważna informacjaWażne:

    Przetwarzanie rozpoczyna się po EndOfInputRowset parametr przychodzący z wartością true.

<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">

<Command>

<Process xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="https://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="https://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100="https://schemas.microsoft.com/analysisservices/2008/engine/100" xmlns:ddl100_100="https://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Type>ProcessFull</Type>

<Object xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

</Object>

<Bindings xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>LoanId</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>LoanId</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>Library</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>Library</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>LoanerID</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>LoanerID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>DateLoaned</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>DateLoaned</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>DaysOut</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>DaysOut</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>AssetID</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>AssetID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>AssetOrigin</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>AssetOrigin</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

</Bindings>

<DataSource xsi:type="PushedDataSource">

<root Parameter="InputRowset"/>

<EndOfData Parameter="EndOfInputRowset"/>

</DataSource>

</Process>

</Command>

<Properties />

<Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Parameter>

<Name>InputRowset</Name>

<Value xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">

<xsd:element name="root">

<xsd:complexType>

<xsd:sequence minOccurs="0" maxOccurs="unbounded">

<xsd:element name="row" type="row" />

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:simpleType name="uuid">

<xsd:restriction base="xsd:string">

<xsd:pattern value="[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}" />

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="xmlDocument">

<xsd:sequence>

<xsd:any />

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="row">

<xsd:sequence>

<xsd:element sql:field="LoanId" name="LoanId" type="xsd:long" minOccurs="0" />

<xsd:element sql:field="Library" name="Library" type="xsd:string" minOccurs="0" />

<xsd:element sql:field="LoanerID" name="LoanerID" type="xsd:string" minOccurs="0" />

<xsd:element sql:field="DateLoaned" name="DateLoaned" type="xsd:date" minOccurs="0" />

<xsd:element sql:field="DaysOut" name="DaysOut" type="xsd:int" minOccurs="0" />

<xsd:element sql:field="AssetID" name="AssetID" type="xsd:long" minOccurs="0" />

<xsd:element sql:field="AssetOrigin" name="AssetOrigin" type="xsd:string" minOccurs="0" />

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

<!-- Add Rows Declaration below here -->

<row>

<LoanId>10001</LoanId>

<Library><![CDATA[Library001]]></Library>

<LoanerID><![CDATA[Lib001-78021]]></LoanerID>

<DateLoaned>2008-03-12T09:36:39.1829958</DateLoaned>

<DaysOut>7</DaysOut>

<AssetID>739230021</AssetID>

<AssetOrigin><![CDATA[Library001]]></AssetOrigin>

</row>

<row>

<LoanId>10002</LoanId>

<Library><![CDATA[Library001]]></Library>

<LoanerID><![CDATA[Lib001-88021]]></LoanerID>

<DateLoaned>2008-03-12T19:36:39.1829958</DateLoaned>

<DaysOut>6</DaysOut>

<AssetID>739230022</AssetID>

<AssetOrigin><![CDATA[Library001]]></AssetOrigin>

</row>

<row>

<LoanId>10003</LoanId>

<Library><![CDATA[Library001]]></Library>

<LoanerID><![CDATA[Lib001-78031]]></LoanerID>

<DateLoaned>2008-04-12T09:36:39.1829958</DateLoaned>

<DaysOut>4</DaysOut>

<AssetID>739730023</AssetID>

<AssetOrigin><![CDATA[Library002]]></AssetOrigin>

</row>

<row>

<LoanId>10004</LoanId>

<Library><![CDATA[Library001]]></Library>

<LoanerID><![CDATA[Lib001-78021]]></LoanerID>

<DateLoaned>2008-03-12T09:36:39.1829958</DateLoaned>

<DaysOut>0</DaysOut>

<AssetID>739230021</AssetID>

<AssetOrigin><![CDATA[Library001]]></AssetOrigin>

</row>

<row>

<LoanId>10005</LoanId>

<Library><![CDATA[Library002]]></Library>

<LoanerID><![CDATA[Lib002-70021]]></LoanerID>

<DateLoaned>2008-03-12T09:36:39.1829958</DateLoaned>

<DaysOut>9</DaysOut>

<AssetID>739230721</AssetID>

<AssetOrigin><![CDATA[Library002]]></AssetOrigin>

</row>

</Value>

</Parameter>

<Parameter>

<Name>EndOfInputRowset</Name>

<Value xsi:type="xsd:boolean">true</Value>

</Parameter>

</Parameters>

</Execute>

</soap:Body>

</soap:Envelope>

Polecenie ProcessAdd

Następujące polecenie ASSL jest operacją ProcessAdd nad wymiar pożyczek w bibliotecznej bazie danych.Aby uruchomić polecenie, należy skopiować i wkleić skrypt w oknie XMLA SQL Server Management Studio i ją wykonać.

Jedyna różnica z poprzedniego przykładu jest, że dane są dołączane do istniejących danych w wymiar.ProcessFull spadnie istniejącej zawartości i zamienia zawartości związanej z powiązań.

Ostrzeżenie

ProcessAdd wymuszał ograniczenia wiersza, takich jak unikatowości i Not Null.Jeśli wiersz naruszy któreś z tych ograniczeń całego polecenia i dodawane żadne dane.

<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">

<Command>

<Process xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="https://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="https://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100="https://schemas.microsoft.com/analysisservices/2008/engine/100" xmlns:ddl100_100="https://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Type>ProcessAdd</Type>

<Object xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

</Object>

<Bindings xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>LoanId</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>LoanId</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>Library</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>Library</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>LoanerID</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>LoanerID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>DateLoaned</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>DateLoaned</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>DaysOut</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>DaysOut</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>AssetID</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>AssetID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

<Binding>

<DatabaseID>Library</DatabaseID>

<DimensionID>Loans</DimensionID>

<AttributeID>AssetOrigin</AttributeID>

<KeyColumns>

<KeyColumn>

<Source xsi:type="ColumnBinding">

<TableID />

<ColumnID>AssetOrigin</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

</Binding>

</Bindings>

<DataSource xsi:type="PushedDataSource">

<root Parameter="InputRowset"/>

<EndOfData Parameter="EndOfInputRowset"/>

</DataSource>

</Process>

</Command>

<Properties />

<Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Parameter>

<Name>InputRowset</Name>

<Value xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">

<xsd:element name="root">

<xsd:complexType>

<xsd:sequence minOccurs="0" maxOccurs="unbounded">

<xsd:element name="row" type="row" />

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:simpleType name="uuid">

<xsd:restriction base="xsd:string">

<xsd:pattern value="[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}" />

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="xmlDocument">

<xsd:sequence>

<xsd:any />

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="row">

<xsd:sequence>

<xsd:element sql:field="LoanId" name="LoanId" type="xsd:long" minOccurs="0" />

<xsd:element sql:field="Library" name="Library" type="xsd:string" minOccurs="0" />

<xsd:element sql:field="LoanerID" name="LoanerID" type="xsd:string" minOccurs="0" />

<xsd:element sql:field="DateLoaned" name="DateLoaned" type="xsd:date" minOccurs="0" />

<xsd:element sql:field="DaysOut" name="DaysOut" type="xsd:int" minOccurs="0" />

<xsd:element sql:field="AssetID" name="AssetID" type="xsd:long" minOccurs="0" />

<xsd:element sql:field="AssetOrigin" name="AssetOrigin" type="xsd:string" minOccurs="0" />

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

<!-- Add Rows Declaration below here -->

<row>

<LoanId>20280</LoanId>

<Library><![CDATA[Library002]]></Library>

<LoanerID><![CDATA[Lib001-78021]]></LoanerID>

<DateLoaned>2008-09-12T12:36:39.1829958</DateLoaned>

<DaysOut>17</DaysOut>

<AssetID>939230021</AssetID>

<AssetOrigin><![CDATA[Library001]]></AssetOrigin>

</row>

<row>

<LoanId>20281</LoanId>

<Library><![CDATA[Library002]]></Library>

<LoanerID><![CDATA[Lib001-78021]]></LoanerID>

<DateLoaned>2008-09-12T12:39:49.1829958</DateLoaned>

<DaysOut>6</DaysOut>

<AssetID>999230021</AssetID>

<AssetOrigin><![CDATA[Library002]]></AssetOrigin>

</row>

<row>

<LoanId>20282</LoanId>

<Library><![CDATA[Library002]]></Library>

<LoanerID><![CDATA[Lib001-78021]]></LoanerID>

<DateLoaned>2008-09-12T12:36:39.1829958</DateLoaned>

<DaysOut>17</DaysOut>

<AssetID>999930021</AssetID>

<AssetOrigin><![CDATA[Library002]]></AssetOrigin>

</row>

</Value>

</Parameter>

<Parameter>

<Name>EndOfInputRowset</Name>

<Value xsi:type="xsd:boolean">true</Value>

</Parameter>

</Parameters>

</Execute>

</soap:Body>

</soap:Envelope>

Tworzenie bazy danych i wymiar

Aby utworzyć próbkę bazy danych i obiekty powiązane skopiować i wkleić skrypt w oknie XMLA SQL Server Management Studio i ją wykonać.

Ostrzeżenie

Można zignorować powiązań, które są zestaw w tym poleceniu, ponieważ będą one zastąpione powiązania wiersza w poprzednich krokach.

<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">

<Command>

<Create AllowOverwrite="true" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<ObjectDefinition>

<Database xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="https://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="https://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="https://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200_200="https://schemas.microsoft.com/analysisservices/2010/engine/200/200">

<ID>Library</ID>

<Name>Library Loans</Name>

<Language>1033</Language>

<Dimensions>

<Dimension>

<ID>Loans</ID>

<Name>Loans</Name>

<Source xsi:type="DataSourceViewBinding">

<DataSourceViewID>Library</DataSourceViewID>

</Source>

<ErrorConfiguration>

<KeyNotFound>ReportAndStop</KeyNotFound>

<KeyDuplicate>ReportAndStop</KeyDuplicate>

<NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>

</ErrorConfiguration>

<StorageMode valuens="ddl200_200">InMemory</StorageMode>

<Language>1033</Language>

<Collation>Latin1_General_CI_AS</Collation>

<UnknownMemberName>Unknown</UnknownMemberName>

<Attributes>

<Attribute>

<ID>RowNumber</ID>

<Name>RowNumber</Name>

<Type valuens="ddl200_200">RowNumber</Type>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="RowNumberBinding" />

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="RowNumberBinding" />

</NameColumn>

<OrderBy>Key</OrderBy>

</Attribute>

<Attribute>

<ID>LoanId</ID>

<Name>LoanId</Name>

<Usage>Key</Usage>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>LoanID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>LoanID</ColumnID>

</Source>

</NameColumn>

<AttributeRelationships>

<AttributeRelationship>

<AttributeID>RowNumber</AttributeID>

<Cardinality>One</Cardinality>

<Name>RowNumber</Name>

</AttributeRelationship>

<AttributeRelationship>

<AttributeID>Library</AttributeID>

<Name>Library</Name>

</AttributeRelationship>

<AttributeRelationship>

<AttributeID>LoanerID</AttributeID>

<Name>LoanerID</Name>

</AttributeRelationship>

<AttributeRelationship>

<AttributeID>DateLoaned</AttributeID>

<Name>DateLoaned</Name>

</AttributeRelationship>

<AttributeRelationship>

<AttributeID>DaysOut</AttributeID>

<Name>DaysOut</Name>

</AttributeRelationship>

<AttributeRelationship>

<AttributeID>AssetID</AttributeID>

<Name>AssetID</Name>

</AttributeRelationship>

<AttributeRelationship>

<AttributeID>AssetOrigin</AttributeID>

<Name>AssetOrigin</Name>

</AttributeRelationship>

</AttributeRelationships>

<OrderBy>Key</OrderBy>

</Attribute>

<Attribute>

<ID>Library</ID>

<Name>Library</Name>

<KeyColumns>

<KeyColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>Library</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>Library</ColumnID>

</Source>

</NameColumn>

<OrderBy>Key</OrderBy>

</Attribute>

<Attribute>

<ID>LoanerID</ID>

<Name>LoanerID</Name>

<KeyColumns>

<KeyColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>LoanerID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>LoanerID</ColumnID>

</Source>

</NameColumn>

<OrderBy>Key</OrderBy>

</Attribute>

<Attribute>

<ID>DateLoaned</ID>

<Name>DateLoaned</Name>

<KeyColumns>

<KeyColumn>

<DataType>Date</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>DateLoaned</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>DateLoaned</ColumnID>

</Source>

</NameColumn>

<OrderBy>Key</OrderBy>

</Attribute>

<Attribute>

<ID>DaysOut</ID>

<Name>DaysOut</Name>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>DaysOut</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>DaysOut</ColumnID>

</Source>

</NameColumn>

<OrderBy>Key</OrderBy>

</Attribute>

<Attribute>

<ID>AssetID</ID>

<Name>AssetID</Name>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>AssetID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>AssetID</ColumnID>

</Source>

</NameColumn>

<OrderBy>Key</OrderBy>

</Attribute>

<Attribute>

<ID>AssetOrigin</ID>

<Name>AssetOrigin</Name>

<KeyColumns>

<KeyColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>AssetOrigin</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<NameColumn>

<DataType>WChar</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>AssetOrigin</ColumnID>

</Source>

</NameColumn>

<OrderBy>Key</OrderBy>

</Attribute>

</Attributes>

</Dimension>

</Dimensions>

<Cubes>

<Cube>

<ID>Loans</ID>

<Name>Loans</Name>

<Language>1033</Language>

<Collation>Latin1_General_CI_AS</Collation>

<Dimensions>

<Dimension>

<ID>Loan</ID>

<Name>Loan</Name>

<DimensionID>Loans</DimensionID>

<Attributes>

<Attribute>

<AttributeID>RowNumber</AttributeID>

</Attribute>

<Attribute>

<AttributeID>LoanID</AttributeID>

</Attribute>

<Attribute>

<AttributeID>Library</AttributeID>

</Attribute>

<Attribute>

<AttributeID>LoanerID</AttributeID>

</Attribute>

<Attribute>

<AttributeID>DateLoaned</AttributeID>

</Attribute>

<Attribute>

<AttributeID>DaysOut</AttributeID>

</Attribute>

<Attribute>

<AttributeID>AssetID</AttributeID>

</Attribute>

<Attribute>

<AttributeID>AssetOrigin</AttributeID>

</Attribute>

</Attributes>

</Dimension>

</Dimensions>

<MeasureGroups>

<MeasureGroup>

<ID>Loan</ID>

<Name>Loan</Name>

<Measures>

<Measure>

<ID>LoanID</ID>

<Name>LoanID</Name>

<AggregateFunction>Count</AggregateFunction>

<DataType>BigInt</DataType>

<Source>

<DataType>BigInt</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>LoanID</ColumnID>

</Source>

</Source>

</Measure>

<Measure>

<ID>DaysOut</ID>

<Name>DaysOut</Name>

<DataType>BigInt</DataType>

<Source>

<DataType>BigInt</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>DaysOut</ColumnID>

</Source>

</Source>

</Measure>

</Measures>

<StorageMode valuens="ddl200_200">InMemory</StorageMode>

<ProcessingMode>Regular</ProcessingMode>

<Dimensions>

<Dimension xsi:type="DegenerateMeasureGroupDimension">

<CubeDimensionID>Loan</CubeDimensionID>

<Attributes>

<Attribute>

<AttributeID>RowNumber</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="InheritedBinding" />

</KeyColumn>

</KeyColumns>

</Attribute>

<Attribute>

<AttributeID>LoanID</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="ColumnBinding">

<TableID>dbo_tb_Loan</TableID>

<ColumnID>LoanID</ColumnID>

</Source>

</KeyColumn>

</KeyColumns>

<Type>Granularity</Type>

</Attribute>

<Attribute>

<AttributeID>Library</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>WChar</DataType>

<Source xsi:type="InheritedBinding" />

</KeyColumn>

</KeyColumns>

</Attribute>

<Attribute>

<AttributeID>LoanerID</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>WChar</DataType>

<Source xsi:type="InheritedBinding" />

</KeyColumn>

</KeyColumns>

</Attribute>

<Attribute>

<AttributeID>DateLoaned</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>Date</DataType>

<Source xsi:type="InheritedBinding" />

</KeyColumn>

</KeyColumns>

</Attribute>

<Attribute>

<AttributeID>DaysOut</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="InheritedBinding" />

</KeyColumn>

</KeyColumns>

</Attribute>

<Attribute>

<AttributeID>AssetID</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>BigInt</DataType>

<Source xsi:type="InheritedBinding" />

</KeyColumn>

</KeyColumns>

</Attribute>

<Attribute>

<AttributeID>AssetOrigin</AttributeID>

<KeyColumns>

<KeyColumn>

<DataType>WChar</DataType>

<Source xsi:type="InheritedBinding" />

</KeyColumn>

</KeyColumns>

</Attribute>

</Attributes>

<ddl200_200:ShareDimensionStorage>Shared</ddl200_200:ShareDimensionStorage>

</Dimension>

</Dimensions>

<Partitions>

<Partition>

<ID>Loan</ID>

<Name>Loan</Name>

<Source xsi:type="DsvTableBinding">

<DataSourceViewID>Library</DataSourceViewID>

<TableID>dbo_tb_Loan</TableID>

</Source>

<StorageMode valuens="ddl200_200">InMemory</StorageMode>

</Partition>

</Partitions>

</MeasureGroup>

</MeasureGroups>

<Source>

<DataSourceViewID>Library</DataSourceViewID>

</Source>

<StorageMode valuens="ddl200_200">InMemory</StorageMode>

</Cube>

</Cubes>

<DataSources>

<DataSource xsi:type="RelationalDataSource">

<ID>Library</ID>

<Name>Library</Name>

<ConnectionString>Provider=SQLNCLI10.1;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Library</ConnectionString>

<ImpersonationInfo>

<ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>

</ImpersonationInfo>

<Timeout>PT0S</Timeout>

</DataSource>

</DataSources>

<DataSourceViews>

<DataSourceView>

<ID>Library</ID>

<Name>Library</Name>

<DataSourceID>Library</DataSourceID>

<Schema>

<xs:schema id="Library" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">

<xs:element name="Library" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">

<xs:complexType>

<xs:choice minOccurs="0" maxOccurs="unbounded">

<xs:element name="dbo_tb_Loan" msprop:FriendlyName="tb_Loan" msprop:DbSchemaName="dbo" msprop:DbTableName="tb_Loan" msprop:TableType="Table">

<xs:complexType>

<xs:sequence>

<xs:element name="LoanId" msprop:FriendlyName="LoanId" msprop:DbColumnName="LoanId" type="xs:long" />

<xs:element name="Library" msprop:FriendlyName="Library" msprop:DbColumnName="Library" minOccurs="0" >

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:maxLength value="50" />

</xs:restriction>

</xs:simpleType>

</xs:element>

<xs:element name="LoanerID" msprop:FriendlyName="LoanerID" msprop:DbColumnName="LoanerID" minOccurs="0" >

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:maxLength value="50" />

</xs:restriction>

</xs:simpleType>

</xs:element>

<xs:element name="DateLoaned" msprop:FriendlyName="DateLoaned" msprop:DbColumnName="DateLoaned" type="xs:dateTime" minOccurs="0" />

<xs:element name="DaysOut" msprop:FriendlyName="DaysOut" msprop:DbColumnName="DaysOut" type="xs:int" minOccurs="0" />

<xs:element name="AssetID" msprop:FriendlyName="AssetID" msprop:DbColumnName="AssetID" type="xs:long" minOccurs="0" />

<xs:element name="AssetOrigin" msprop:FriendlyName="AssetOrigin" msprop:DbColumnName="AssetOrigin" minOccurs="0" >

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:maxLength value="50" />

</xs:restriction>

</xs:simpleType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:choice>

</xs:complexType>

</xs:element>

</xs:schema>

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" />

</Schema>

</DataSourceView>

</DataSourceViews>

<ddl200_200:StorageEngineUsed>InMemory</ddl200_200:StorageEngineUsed>

</Database>

</ObjectDefinition>

</Create>

</Command>

<Properties />

</Execute>

</soap:Body>

</soap:Envelope>