webForumDet fria alternativet

Slå ihop flera sql strängar

.NET

4 svar · 398 visningar · startad av ChrilleMZ

Medlem sedan jan. 200334 inlägg
Frågan#1

Hej, är inte så jätte haj på SQL, så därför undrar jag om man kan slå ihop olika SQL strängar, och i så fall hur, här är lite ex.

Kan man slå ihop dessa och i så fall hur?

1.
"SELECT col1 col2 FROM tabell1"
"SELECT col3 col4 FROM tabell2"
"SELECT col5 col6 FROM tabell3"

2.
"INSERT tabell1 (col1, col2) VALUE('värde1','värde2')"
"INSERT tabell2 (col3, col4) VALUE('värde3','värde4')"
"INSERT tabell3 (col5, col6) VALUE('värde5','värde6')"

3.
"UPDATE tabell1 SET col1 = 'nytt1', col2 ='nytt2' WHERE ID = 1"
"UPDATE tabell2 SET col3 = 'nytt3', col4 ='nytt4' WHERE ID = 2"
"UPDATE tabell3 SET col5 = 'nytt5', col6 ='nytt6' WHERE ID = 3"

4
"DELETE FROM tabell1 WHERE ID = 1"
"DELETE FROM tabell2 WHERE ID = 2"
"DELETE FROM tabell3 WHERE ID = 3"

Kan man slå ihop flera av dessa olika som:
"UPDATE tabell1 SET col1 = 'nytt1', col2 ='nytt2' WHERE ID = 1"
"INSERT tabell3 (col5, col6) VALUE('värde5','värde6')"

Tacksam för svar =)

/Chrille

Medlem sedan dec. 19991 072 inlägg
#2

Du kan använda ";" som avgränsare mellan dina SQL-frågor.

Tex:
"DELETE FROM t1 WHERE a = 1;DELETE FROM t2 WHERE b = 2"

Om du kör SQL-server så är det dock enklare och mer översiktligt att använda en Stored Procedure.

Gällande dina SELECT så kan du hämta flera resultat-set, men du kan även använda typ:
"SELECT * from T1, T2", men ofta så har tabellerna någon relation och då är en JOIN att föredra.

Skriv om du behöver mer info!

Medlem sedan jan. 200334 inlägg
#3

Gick inte att avgänsa de olika SQL-frågorna med ;

fick detta felet:
Exception Details: System.Data.Odbc.OdbcException: ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-4.0.21-debug]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ';UPDATE testtabell1 SET Name = 'Jalmar1' WHERE ID = 2' at line

Medlem sedan juli 20011 304 inlägg
#4

Det funkar bara att göra så på sql-server.
I MySql får du vackert köra varje fråga för sig...

Medlem sedan jan. 200334 inlägg
#5

ok, synd men tack för svaren ändå =)

270 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)