sql >> Databáze >  >> RDS >> Sqlserver

Migrace SQL Server 2000 na 2008 – ORDER BY Problém při použití DISTINCT

Sémantiku můžete mírně změnit takto:

SELECT ZipCode FROM 
(
  SELECT DISTINCT ZipCode = LEFT(tz.Zipcode, 5)
    FROM dbo.TerritoryZip
) AS x
ORDER BY ZipCode;

Neřeší problém, protože dotaz je podrobnější a stále se nemůžete vyhnout dotyku. Oprava, kterou jste již navrhl, je podle mého názoru lepší, protože je jasnější o tom, co se děje.

Abych nebyl přísný, ale pokud si nemyslíte, že budete schopni „najít všechny instance tohoto typu SQL“, jak tedy vůbec důvěřujete svému testování?

Navrhoval bych, že udržování režimu 2000 není optimální řešení. Důvodem je, že to může způsobit narušení jiné syntaxe (např. způsob, jakým byste mohli volat funkce dynamické správy – viz toto Příspěvek na blogu Paula Randala a můj komentář k němu), riskujete také zachování kódu, který by měl být opraven (např. starý styl *= / =* spojení, která jsou platná v režimu 2000 compat, ale nebudou platná, když přejdete z 2008 R2 -> Denali, která nepodporuje 2000 compat).

Neexistuje žádné nastavení "přísnosti", ale můžete hlasovat pro SADA STRICT_CHECKS ON od Erlanda Sommarskoga; návrh .



  1. Jak přidat ovládací prvek vyhledávání do formuláře v Accessu 2016

  2. Chyba databáze Postgres drop:pq:nelze zrušit aktuálně otevřenou databázi

  3. Chci obnovit databázi s jiným schématem

  4. Oblast rychlé obnovy Oracle