none
Übertragung der Spalteneigenschaften (Bezeichnung) via MSSQL ODBC Treiber RRS feed

  • Frage

  • Hallo zusammen,

    ich versuche aktuell die Spaltenbezeichnungen aus einer MSSQL Server Datenbank (SQL Server 2017) via ODBC Treiber (ODBC Treiber 17 für SQL Server) zu übertragen, leider ohne Erfolg.

    Hat jemand eine Idee woran das liegen könnte?

    VG


    Freitag, 17. Juli 2020 13:22

Antworten

Alle Antworten

  • Hi,

    was genau willst Du wie genau mit welchen Mitteln wohin übertragen?

    Ich für meinen Teil kann mit deiner Beschreibung leider gar nichts anfangen, daher würde ich dich bitten, das Gewünschte an einem konkreten Beispiel aufzuzeigen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Freitag, 17. Juli 2020 13:40
    Moderator
  • ODBC/OLEDB/ADO.Net unterstützten Funktionen wie GetSchema(). Je nach Datenbank werden verschiedene Schematas angeboten.
    Columns = Spalten
    Tables = Tabellen
    Views = Views
    u.v.m.
    Manache auch "Schemas" um herauszufinden, was es alles gibt.

    Jede dieser Schemafunktionen hat dann verschiedene Filter.

    https://docs.microsoft.com/de-de/dotnet/api/system.data.odbc.odbcconnection.getschema?view=netframework-4.8

    Freitag, 17. Juli 2020 14:19
  • Konkret möchte ich die Beschreibung einer Spalte via ODBC übertragen.

    Beispiel: Spaltennamen "ARTBEZ", Beschreibung: "Artikelbeschreibung"

    Quelle ist dabei ein MSSQL Server 2017 und Ziel ein SAP BW/4HANA.


    Gruß

    Michael


    Montag, 20. Juli 2020 07:30
  • Ja das dachte ich mir. Mit welcher Programmier-Sprache greifst du zu?
    Per ODBC-Definition kannst du Spalteninformationen mittels

    MyConnection.OpenSchema("Columns",...

    ein Resultset erhalten. Den Link für die .Net-Methoden habe ich dir ja bereits gegeben.

    Montag, 20. Juli 2020 07:58
  • Konkret möchte ich die Beschreibung einer Spalte via ODBC übertragen.

    Hallo Michael,

    eine "Beschreibung" einer Spalte gibt es nur als Extended Property und die kannst Du so abfragen:

    select tbl.name, col.name, ep.value
    from sys.tables as tbl
         inner join
         sys.columns as col
             on tbl.object_id = col.object_id
         inner join
         sys.extended_properties as ep
             on tbl.object_id = ep.major_id
                and col.column_id = ep.minor_id
    where ep.class_desc = 'OBJECT_OR_COLUMN'

    Siehe Extended Properties Catalog Views - sys.extended_properties


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Montag, 20. Juli 2020 08:04
  • Hallo zusammen,

    danke für die Rückmeldungen.

    Nach Rücksprache mit dem SAP Support benutzt das SAP BW die SQL Columns Funktion (https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlcolumns-function?view=sql-server-ver15)

    Hierbei bekommen wir jedoch für die Spalte "REMARKS" NULL-Werte zurück.

    Scheinbar kann der ODBC Treiber also die Beschreibungen einer Spalte einfach nicht liefern, oder gibt es eine spezielle Einstellung?

    VG

    Michael

    Dienstag, 21. Juli 2020 11:13
  • Hallo Michael,

    wie gesagt, eine Standard "Beschreibung" gibt es im SQL Server nicht, nur Extended Properties.

    Siehe sp_columns (Transact-SQL) (das ist die Hintergrund Funktion dazu): REMARKS varchar(254) This field always returns NULL.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 21. Juli 2020 11:52
  • Okay ist natürlich schade, aber naja...

    Danke euch!

    Dienstag, 21. Juli 2020 13:12
  • Dann wirst du ggf. hier fündig:

    https://stackoverflow.com/questions/15161505/use-a-query-to-access-column-description-in-sql

    Dienstag, 21. Juli 2020 16:10