freshman2017
Goto Top

MSSQL Script für MySQL nutzen?

Guten Tag liebe Gemeinde,

ich nutze derzeit für einen Import einer TXT Datei in MSSQL unten stehenden Code. Ich kann diesen ja über sqlcmd ausführen lassen . Meine Frage, wie wäre der Code, wenn ich das ganze mit mysql nutzen möchte?

IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = N'TEST')  

BEGIN 
		CREATE DATABASE [TEST]
END

GO

USE TEST

GO

/***********************************************************************************************************************************************************/

IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1_tmp')  
DROP Table test_1_tmp

GO

IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1_tmp')  
CREATE TABLE test_1_tmp

	(
	ID VARCHAR(8000)
	)

GO

IF NOT EXISTS (SELECT column_name FROM INFORMATION_SCHEMA.columns WHERE table_name = 'test_1_tmp' AND column_name = 'wert1')  
 
ALTER TABLE test_1_tmp ADD wert1 VARCHAR(8000)

GO

IF NOT EXISTS (SELECT column_name FROM INFORMATION_SCHEMA.columns WHERE table_name = 'test_1_tmp' AND column_name = 'wert2')  
 
ALTER TABLE test_1_tmp ADD wert2 VARCHAR(8000)

GO

/***********************************************************************************************************************************************************/


BULK INSERT test_1_tmp
FROM 'C:\ProgramData\test.txt' WITH  

	(
	FIELDTERMINATOR = ';',  
	ROWTERMINATOR = '\n'  
	)

GO

/***********************************************************************************************************************************************************/

IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1')  
CREATE TABLE test_1

	(
	ID VARCHAR(8000)
	)

GO

IF NOT EXISTS 
	(
	SELECT column_name 
	FROM INFORMATION_SCHEMA.columns 
	WHERE table_name = 'test_1'  
	AND column_name = 'wert1'  
	)
 
ALTER TABLE test_1 ADD wert1 VARCHAR(8000)

GO

IF NOT EXISTS 
	(
	SELECT column_name 
	FROM INFORMATION_SCHEMA.columns 
	WHERE table_name = 'test_1'  
	AND column_name = 'wert2'  
	)
 
ALTER TABLE test_1 ADD wert2 VARCHAR(8000)

GO

/***********************************************************************************************************************************************************/

MERGE test_1 t 

USING test_1_tmp s ON 
	
	(
	s.ID = t.ID
	)
	
WHEN MATCHED THEN UPDATE SET 
    
	t.ID = s.ID,
	t.wert1 = s.wert1,
	t.wert2 = s.wert2
	
WHEN NOT MATCHED BY TARGET THEN INSERT 
	
	(
	ID, wert1, wert2
	)
    
VALUES
	
	(
	s.ID, s.wert1, s.wert2
	);

/***********************************************************************************************************************************************************
	
WHEN NOT MATCHED BY SOURCE THEN DELETE;

************************************************************************************************************************************************************/

GO

/***********************************************************************************************************************************************************/

IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1_tmp')  

DROP Table test_1_tmp

GO

/***********************************************************************************************************************************************************/
/***********************************************************************************************************************************************************/
/***********************************************************************************************************************************************************/

Content-Key: 537344

Url: https://administrator.de/contentid/537344

Ausgedruckt am: 19.03.2024 um 11:03 Uhr

Mitglied: it-frosch
it-frosch 20.01.2020 aktualisiert um 10:39:33 Uhr
Goto Top
Hallo freshman,

nimm dir die MYSQL Syntax Referenz deiner verwendeten MySQL Version
und setze dein Skript um.
Das ist ein gute Übung, wenn du soetwas bisher noch nicht gemacht hast.

Beispiel:
Bulk insert (MSSQL) wird LOAD DATA (MySQL) MySQL Syntax


grüße vom it-frosch
Mitglied: ukulele-7
ukulele-7 20.01.2020 um 09:46:51 Uhr
Goto Top
So ziemlich alles wäre anders...