Bei der Entwicklung des Prototyps einer Lösung sind die Technologien häufig noch nicht entschieden und stimmen möglicherweise nicht mit denen überein, die für das fertige Produkt verwendet werden.
In diesen Szenarien verwende ich normalerweise Microsoft SQL Server, um die Abfragen so standardmäßig wie möglich zu schreiben, um die eventuelle Migration auf einen anderen Server zu vereinfachen.
Gibt es eine Möglichkeit oder eine bekannte Praxis, die Verwendung von Standard-SQL über T-SQL-Dialekt direkt in SQL Server oder über SQL Server Management Studio (SSMS) zu erzwingen?
sql-server
sql-server-2016
migration
sql-standard
s.demuro
quelle
quelle
<>
) und Nicht-Standard (!=
) wählen können, bei denen keine Kompromisse bei Leistung oder Wartbarkeit eingegangen werden, wähle ich immer Standard. Aber wenn es um andere Kosten geht oder es kein Standardäquivalent gibt, tippe ich aus und gehe proprietär. Die Dinge, die Sie aufgeben, nur um später die Plattform im Großhandel komplett zu wechseln, sind es imho einfach nicht wert.Antworten:
Benutzer Aaron Bertrand hat einige Kommentare abgegeben, die gut zu meinen Gedanken zu Ihrer Frage passen. Dies ist eher eine Rahmenherausforderung als eine Antwort auf Ihre spezifische Frage, aber ich denke, es ist wertvoll, dies in diesem Zusammenhang zu berücksichtigen.
Wenn Sie irgendwann die Plattform wechseln müssen, sind Änderungen an der Anwendung, der Datenbank und wahrscheinlich vielen anderen Dingen erforderlich. Wenn Sie ohne großen Aufwand etwas "plattformunabhängig" sein können, ist das in Ordnung. Aber es ist wirklich eine schlechte Geschäftsentscheidung, dies als Designziel zu verwenden.
Es gibt viele Orte im Internet, an denen die Leute die Nachteile diskutieren oder auf diese Weise programmieren. Hier ist einer von ihnen, den ich ziemlich überzeugend finde:
Datenbank-Abstraktionsschichten müssen sterben!
quelle
Erzwingen Sie STD SQL nicht.
Entscheiden Sie zuerst, welches DBMS Sie entsprechend den Anforderungen Ihres Projekts verwenden möchten, und nutzen Sie es.
quelle
Nicht wirklich.
Es gibt
SET FIPS_FLAGGER 'FULL'
.Dies gibt eine Warnung für nicht standardmäßiges SQL aus - es gibt jedoch einige Einschränkungen
+
Operators für die Verkettung von Zeichenfolgen oder proprietäre Funktionen, soGETDATE()
dass er nicht sehr umfassend erscheint.quelle
"Oft sind die Technologien noch nicht entschieden"
Ich würde sagen, dass dies meiner Erfahrung nach absolut NICHT der Fall ist. Tatsächlich glaube ich nicht, dass ich jemals davon gehört habe, außer vielleicht etwas sehr Kleinem.
In der Regel wird dies festgelegt, und es wird erwartet, dass die neue Lösung das verwendet, was bereits verwendet wird.
Ich würde den obigen Kommentatoren darin zustimmen, dass Sie dies zuerst festlegen müssen, bevor Sie mit dem Schreiben von Abfragen und anderem Code beginnen, auch wenn es nicht eingerichtet ist. Andernfalls lassen Sie sich möglicherweise sofort auf eine Menge verschwendeter Anstrengungen ein, um sofort neu zu schreiben.
quelle