MySQL <=> MSSQL Syntax Unterschiede ?
hawkmaster
- datenbank
0 dedlfix
0 hawkmaster0 dedlfix
Hallo zusammen,
ich habe eine Intranet Anwendung mit PHP und MySQL aufgebaut. Die MySQL DB hat mittlerweile 90 Tabellen. Ich arbeite mit PDO.
Nun kam bei uns der Gedanke auf, eventuell in Zukunft alles mit dem MS SQL Server Express zu betreiben oder zumindest die Wahl treffen zu können.
Irgendwie graust es mir davor.
Ich habe nun schon eine ganze Weile gegoogelt.
Was ich nun weiss.
Bei MSSQL gibt es kein LIMIT mehr.
Mein oft verwendetes "$PDO->lastInsertId();" geht bei MSSQL auch nicht mehr.
Auf welche Unterschiede oder Probleme muss man sich noch einstellen?
Kennt jemand vielleicht eine Doku oder Link wo die Syntax Unterschiede aufgelistet werden?
Mal abgesehen davon ob es mir gelingt die MySQL DB und Tabellen zu MS SQL zu konvertieren. Es gibt doch bestimmt bei MS SQL auch unterschiedliche Datentypen?
Bin für jeden Hinweis dankbar.
vielen Dank und viele Grüße
hawk
Hi!
ich habe eine Intranet Anwendung mit PHP und MySQL aufgebaut. Die MySQL DB hat mittlerweile 90 Tabellen. Ich arbeite mit PDO.
Nun kam bei uns der Gedanke auf, eventuell in Zukunft alles mit dem MS SQL Server Express zu betreiben oder zumindest die Wahl treffen zu können.
Irgendwie graust es mir davor.
Und das zu Recht. Von reinen Datenbankabstraktionsschichten verspricht man sich oft mehr, als sie am Ende zu halten in der Lage sind. Wenn man sich nicht gerade auf den kleinsten gemeinsamen SQL-Dialekt beschränkt, nützen einem solche Abstraktionen bei einem Wechsel nicht sehr viel. Die Vorstellung, mit einem einfachen Connection-String-Wechsel umsteigen zu können, ist meist eine falsche Annahme. Was bleibt denn am Ende noch übrig, wenn man die Features der speziellen DBMS nicht nutzen kann? Kaum mehr als die Ausführungsgeschwindigkeit.
Was anderes ist es, wenn man eine Abstraktionsebene oben drüber ansetzt, die reinweg Daten liefert und entgegennimmt, die das komplette DBMS-Handling vor der Geschäftslogik versteckt und die die individuellen DBMS individuell bedienen kann.
Bei MSSQL gibt es kein LIMIT mehr.
Jein, dafür gibt es TOP und Lösungen, wie man auch ein unteres Limit setzt, ohne dass man die nicht gewollten Datensätze ignorierend wegfetchen müsste.
Mein oft verwendetes "$PDO->lastInsertId();" geht bei MSSQL auch nicht mehr.
Und das, obwohl es eine selbst inkrementierende Spalte und diverse Funktionen zum Abfragen gibt?
Auf welche Unterschiede oder Probleme muss man sich noch einstellen?
Viele, anzunehmenderweise. Genauer kann man das erst sagen, wenn man die von dir verwendeten Features mit der Featureliste von MSSQL vergleicht.
Kennt jemand vielleicht eine Doku oder Link wo die Syntax Unterschiede aufgelistet werden?
Das wäre eine ziemliche Fleißarbeit, bei der man ja auch noch die verschiedenen Versionen berücksichtigen muss.
Mal abgesehen davon ob es mir gelingt die MySQL DB und Tabellen zu MS SQL zu konvertieren. Es gibt doch bestimmt bei MS SQL auch unterschiedliche Datentypen?
Ja, natürlich.
Lo!
Hi dedlfix
vielen Dank für deine Hinweise.
Ich dachte mir schon das dieses Vorhaben sehr schwer wird.
Aber mal angenommen, man würde sich nur für EIN Datenbanksystem entscheiden.
Würdest du dem MS SQL Server den Vorzug vor MySQL geben?
Oder wenn schon dann gleich PostgreSQL?
vielen Dank und viele Grüße
hawk
Hi!
Würdest du dem MS SQL Server den Vorzug vor MySQL geben?
Oder wenn schon dann gleich PostgreSQL?
Das kommt auf die Aufgabenstellung an. .NET arbeitet natürlich am besten mit MSSQL zusammen, für PHP gibt es die beste Unterstützung in Richtung MySQL. Andere technische und organisatorische Gründe können andere bevorzugte DBMS ergeben.
Lo!