![]() |
Datenbank: Interbase • Version: 7.5 • Zugriff über: BdpProvider
Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Hallo,
unabhängig von meiner noch laufenden Diskussion habe ich einige konkrete Fragen zum SQL Server 2005 (bisher hatte ich mich mit Interbase befasst). Die Fragen formuliere ich so, dass Interbase-DBs zu MSSQL-DBs konvertiert werden sollten. Ich bitte auch um Aussagen, was bei Firebird angebracht wäre. (Nachtrag:) Bei MSSQL habe ich die Doku und z.T. die Lernprogramme benutzt, aber noch keine ernsthaften Versuche gemacht. @Mods Da es sich weitgehend um kurze und klare Fragen handelt, die ohne längere Diskussion beantwortet werden könnten, dürfte es erlaubt sein, hier mehrere Themen zusammenzufassen. SQL-Skripts: COMMIT (WORK), SET TERM, GO Sehe ich es richtig, dass die ersten beiden Befehle praktisch durch GO zu ersetzen wären? Datentyp BOOLEAN Diesen gibt es in IB ja inzwischen (jedenfalls rudimentär; beim Aufruf von SProc muss oft noch ein int-Wert 0/1 übergeben werden). Muss man bei MSSQL weiterhin mit int arbeiten? Welcher int-Typ ist bei der internen Arbeitsweise von MSSQL am besten geeignet? Ist es sinnvoll, dafür einen Benutzer-Typ zu definieren, oder wird besser mit dem eigentlichen int-Typen gearbeitet? Benutzerdefinierte Datentypen und Domains IB setzt bekanntlich jede Spaltendefinition in Domains um; auch deshalb empfiehlt es sich (empfiehlt Andreas Kosch), für alles Domains zu definieren. Unter MSSQL gibt es Domains anscheinend nicht im Zusammenhang mit Datentypen (oder habe ich etwas Wichtiges übersehen?). Gibt es für MSSQL vergleichbare Arbeitsweisen, oder legt man benutzerdefinierte Datentypen nur bei Bedarf an (z.B. weil eine deutsche PLZ immer 5 Stellen (Nachtrag: nämlich Ziffern) und ein Nachname immer max. 35 Stellen haben soll)? Danke erst einmal! Jürgen [edit=Jelly]Einige Sachen auf Wunsch gelöscht, Mfg, Jelly[/edit] |
Re: Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Eine Grundsatzfrage:
Willst du nur nach MS-SQL portieren und dann wieder einen ![]() Falls du DBMS-Unabhängig sein willst so bau dir auf jedenfall eine DBMS-Abstraktionsschicht ein (wie z.B (N)Hypernate oder konsorten). Dies sollen auch unteschiede der Datentypen kapseln. Auch ist es sinnvoll möglichst wenige spezielle DB-Datentypen zu verwenden um hier nicht probleme mit der Unterstüzung in anderen DB's zu haben. |
Re: Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Zitat:
Zitat:
Zitat:
|
Re: Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Hinweis: Bei MSSQL habe ich die Doku und z.T. die Lernprogramme benutzt, aber noch keine ernsthaften Versuche gemacht.
Danke für diese Antworten. Weitere Fragen als Nachtrag Autoinc / Gen_ID / Identity Einen Autoinc-Datentyp gibt es weder in IB noch in MSSQL. In IB kann dieser durch Gen_ID i.V.m. Generatoren ersetzt werden. Sehe ich es richtig, dass Identity ein besserer, nämlich automatischer Ersatz ist? Sehe ich es richtig, dass ein Identity-Feld zusätzlich als PrimaryKey festgelegt werden muss (und dies nicht automatisch ist)? Trigger before / Trigger instead of Kann ich als schnelle Lösung einen 'Trigger instead of' anstelle eines 'Trigger before' verwenden, oder gibt es wesentliche Unterschiede? (Im zweiten Fall genügt mir zz. ein kurzer Hinweis, keine lange Erläuterung; ich werde ggf. selbst weitersuchen.) Danke weiterhin! Jürgen PS. Nachträge werden anscheinend übersehen; ich setze diese Punkte deshalb nochmals rein. @Mod Ich wollte diese Fragen in #1 löschen, durfte das aber nicht mehr machen. |
Re: Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Zitat:
Für MSSQL geht das ganz leicht mit dem Zusatz identity bei der Definition einer Spalte. Etwa so:
SQL-Code:
Du kannst auch die Sache mit dem Primary Key weglassen, aber dazu gibts meist keinen Grund. Jede gute Tabelle sollte mindestens einen Primary Key definiert haben.
CREATE TABLE Test (
ID int IDENTITY (1, 1) NOT NULL , Name varchar(100) NULL ) GO ALTER TABLE Test WITH NOCHECK ADD CONSTRAINT PK_ID PRIMARY KEY CLUSTERED (ID) GO Zitat:
|
Re: Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Autoinc:
Zitat:
Zitat:
Zitat:
Jürgen |
Re: Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Dieser instead of Trigger ist dann aber beim SQL Server 2005 neu. Bei der 2000er Version gibts das noch nicht, nur die üblich Verdächtigen for insert, update, delete.
|
Re: Interbase/Firebird vs. MS-SQL Server 2005: Unterschiede?
Zitat:
ME werden Trigger bei Aktion ausgeführt, Bsp. : BeforeInsert, Insert, AfterInsert Ich denke, Die instead-Trigger ersetzen den Befehl! Also kein Insert mehr! Vorteil: vollständige Handlungsfreiheit Nachteil: nicht kaskadierbar! nicht mit BeforeInsert/AfterInsert kombinierbar. Mfg DB |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz