EMail senden Mail an den Autor Drucken

vorhergehender Eintrag

nächster Eintrag

Inhalt

Hilfe Index

.

SQL Scripts

Kopieren einer Tabelle

Um eine Tabelle von einer Datenbank in eine andere zu bringen gehen Sie wie folgt vor:

Beispiel:

Sie haben eine Sicherung der Datenbank auf dem Server mit dem Namen kplus_sicherung, die Datenbank für Kplus heißt kplus.
Sie wollen die Tabelle D_ARTIKEL von der Sicherung in die Datenbank kplus kopieren.
Die bestehenden Daten werden dabei nicht gelöscht.

-- ------------------------------------------
-- Kopieren einer Tabelle von einer Datenbank in eine andere
--
-- Programmierer Rhomberg Martin
--
-- Scriptvariablen anpassen @l_Source_DB, @l_Target_DB, @l_table
-- -------------------------------------------

DECLARE @l_table_target varchar(200)
,@l_table_source varchar(200)
,@l_cols varchar(8000)
,@l_colname varchar(200)
,@l_sql varchar(8000)
,@l_Source_DB varchar(100)
,@l_Target_DB varchar(100)

SET @l_Source_DB = 'kplus_save'; -- Quell Datenbank
SET @l_Target_DB = 'kplus'; -- Ziel Datenbank
SET @l_table_source = 'D_LAGER'; -- Tabelle
SET @l_table_target = @l_table_source ; -- Tabelle
SET @l_cols = '' ; -- Spalten

DECLARE hCur CURSOR FAST_FORWARD FOR

SELECT sys.columns.name
from sys.columns
inner join sys.objects on sys.objects.object_id=sys.columns.object_id
where sys.objects.type='u' and sys.objects.name=@l_table_source

OPEN hCur;

-- Lesen
FETCH NEXT FROM hCur INTO

@l_colname;

SET @l_cols = '';

-- Schleife über alle Sätze bis EOF

While @@FETCH_STATUS = 0

BEGIN

IF @l_cols <> ''

SET @l_cols = @l_cols + ',';
SET @l_cols = @l_cols + @l_colname;
FETCH NEXT FROM hCur INTO
@l_colname;

END

CLOSE hCur;

DEALLOCATE hCur;

SET @l_SQL = 'USE ' + @l_Target_DB + CHAR(13) + CHAR(10);
SET @l_SQL = @l_SQL + 'SET IDENTITY_INSERT ' + @l_table_target + ' ON' + CHAR(13) + CHAR(10);
SET @l_SQL = @l_SQL + 'INSERT INTO ' + @l_Target_DB + '.' + 'dbo' + '.' + @l_table_target + ' (' + @l_cols + ') ';
SET @l_SQL = @l_SQL + 'SELECT ' + @l_cols + ' FROM ' + @l_Source_DB + '.' + 'dbo' + '.' + @l_table_source;

PRINT @l_SQL

EXEC (@l_SQL);

Weitere Kapitel

Scriptlets für Artikel Formeln

Sichern einer Tabelle

Setstufen richtig stellen

Artikelliste mit Artikel füllen

Verwaiste Zusatzdaten entfernen

Einzelnes Feld aus einer Sicherung holen

Zum Seitenanfang Drucken