sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2000 till 2008 Migration - ORDER BY Issue när du använder DISTINCT

Du kan ändra semantiken något genom att göra så här:

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

Löser inte problemet egentligen eftersom frågan är mer utförlig och du fortfarande inte kan undvika att röra den. Den korrigering du redan har föreslagit är bättre i mina ögon eftersom den är mer tydlig om vad som pågår.

Inte för att vara hård, men om du inte tror att du kommer att kunna "hitta alla instanser av den här typen av SQL" hur litar du då på dina tester?

Jag skulle föreslå att att behålla 2000-läget inte är det optimala svaret. Anledningen är att detta kan göra att annan syntax går sönder (t.ex. hur du kan anropa dynamiska hanteringsfunktioner - se det här Paul Randal blogginlägg och min kommentar till det), riskerar du också att vidmakthålla kod som borde åtgärdas (t.ex. gammaldags *= / =* anslutningar som är giltiga i 2000 compat-läge, men kommer inte att vara giltiga när du går från 2008 R2 -> Denali, som inte stöder 2000 compat).

Det finns ingen "striktighet"-inställning men du kan rösta på Erland Sommarskogs SET STRICT_CHECKS ON; förslag .



  1. Crystal-rapporten kunde inte hämta data från databasen

  2. 6 sätt att kontrollera om en tabell finns i SQL Server (T-SQL-exempel)

  3. Designa relationer kring en arvsstruktur

  4. Ny installation av python 3.7 / django 2.2.1 känner inte igen att mysqlclient är installerad