Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Tabelle von einem Server auf den anderen Importieren

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Chillazz, 8 September 2014.

  1. Chillazz

    Chillazz Benutzer

    Guten Morgen oder guten Tag Liebe Community ,
    ich habe ein kleines Problem, und eventuell kann mir ja einer von euch hier helfen.
    Da ich noch totaler Anfänger bin schaue ich öfter bei euch vorbei, und bisher konnte ich immer nützliche Tipps finden.
    Da ich aber wie gesagt noch totaler Anfänger bin versteh ich einfach viele schritte noch nicht , deshalb falls mir einer bei meinen Problem lösen kann , wäre es total nett wenn man zu den schritten schreibt was da geschieht , da ich nicht einfach nur was abschreiben will ,sondern ja lernen .
    Folgendes Problem !
    Ich muss von einer vorhandenen Datenbank eine paar Spalten auf eine andere Datenbank kopieren, wo ich eine Tabelle mit den Spalten angelegt habe.
    Dies soll mit einer SP gemacht werden, hier mal mein Ansatz.


    createPROCEDURE[dbo].[uspneueTabelle]
    @Artikelnvarchar(10), <<< sind nicht die richtigen Daten
    @Preisnvarchar(10),
    @Artikelbezeichnungnvarchar(50),
    @Markenvarchar(15),
    @Mengenvarchar(20)

    AS
    BEGIN

    SETNOCOUNTON;
    INSERTINTO[dbo].[tmpNEU Angelegte Tabelle auf server 2 ]
    ([Artikel]
    ,[Preis]
    ,[Artikelbezeichnung]
    ,[Marke]
    ,[Menge])

    VALUES
    (@Artikel
    ,@Preis
    ,@Artikelbezeichnung
    ,@Marke
    ,@Menge)


    END
    Mir fehlt jetzt glaube ich der Befehl, wo her ich die Daten ziehe und von welchen Server oder?
    Für jede Hilfe bedanke ich mich schon einmal sehr herzlich.
     
  2. Huan90

    Huan90 Benutzer

    Hallo Chillazz,
    gibt es in der Tabelle eine ID-Spalte? Oder Was genau ist der Primärschlüssel der Tabelle?
    Du könntest die "alte-Datenbank" in deinem Server mit der neuen DB connecten und das ganze über eine Abfrage lösen z.B.:

    SET @ID = 1;

    WHILE (@ID < 1000)
    BEGIN
    -- alte Datensätze auslesen:
    SET @ID = (select [ID] from [dbo].[tmp] where [ID] = @ID);
    SET @Artikel = (select [Artikel] from [dbo].[tmp] where [ID] = @ID);
    .
    .
    .

    -- Datensätze in neue TBL eintragen:
    SET @query = ('INSERTINTO [dbo].[tmpNEU] VALUES (' +
    CHAR(39) + ISNULL(@Artikel, 'null') + CHAR(39) + ',' +
    CHAR(39) + ISNULL(@Preis, 'null') + CHAR(39) + ',' +
    CHAR(39) + ISNULL(@Artikelbezeichnung, 'null') + CHAR(39) + ',' +
    CHAR(39) + ISNULL(@Marke, 'null') + CHAR(39) + ',' +
    CHAR(39) + ISNULL(@Menge, 'null') + CHAR(39) + ')');


    EXEC sp_executesql @query;

    SET @ID += 1;

    -- <- Hier wird ein SQL-Statement zusammengeschrieben in die Variable "@query", anschließend wird dieses mit "EXEC sp_executesql" ausgeführt.
    -- Char(39) ist ein ' (Anführungszeichen), das brauchst du an dieser Stelle, da du den Datentyp "Nvarchar" nutzt.
    -- + verbindet Strings, eine andere Möglichkeit wäre noch die Funktion "CONCAT()" (kannst du bei Interesse mal nach googeln)
    -- So wird (vorausgesetzt die TBL hat eine ID-Spalte) die ID hochgezählt, bis 1000 (While-Schleife) und jeder Datensatz einzeln eingetragen...
    -- sicher nicht der perfomanteste weg, es gibt irgendwie auch die möglichkeit eine ganze Tabelle abzufragen und zu speichern (s. programmability -> Functions -> table-valued-functions )
    -- wie das allerdings in SPs geht, kann ich dir noch nicht sagen, hab ich bisher noch nicht gemacht...
    END

    Ich hoffe, das bringt dich schon mal irgendwie weiter...
    LG Huan
    p.s. achtung, Code ungetestet!!!
     
    Chillazz gefällt das.
  3. Chillazz

    Chillazz Benutzer

    Danke dir sehr Herzlich für die Hilfe Huan
    Habe später einen weg gefunden der komischerweise total simple war , danke Hilfe natürlich:p
    Ich merke aber es ist noch viel sehr viel Arbeit ,für mich um SQL zu verstehen .


    Create PROCEDURE[dbo].[Name der zu erstellenden SP]
    AS
    BEGIN

    SETNOCOUNTON;
    INSERTINTO[dbo].[Wohin es Kopiert werden soll]
    ([Artikel]
    ,[Preis
    ,[Marke]
    ,[Menge])


    SELECT
    [Artikel
    ,[Preis]
    ,[Marke]
    ,[Menge]

    FROM[Server].[Ordner].[dbo].[Tabelle woher er die Daten nimmt ]

    END

    LG Chillazz
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden