Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: Działało (SQL 2000) - nie działa (SQL 2005)

Witam!

Dziś wychwyciłem pewnego rodzaju ciekawostkę:
na MS SQL do wersji 2000 zapytanie
SELECT crdate, * FROM sysobjects WHERE type='U' ORDER BY crdate DESC
działa poprawnie, a na wersji 2005 (na 2008 nie sprawdzałem) nie działa. Wyświetla się komunikat: Ambiguous column name 'crdate'.
Oczywiście chodzi mu o to, że w rekordsecie wyjściowym jest dwa razy pole o tej nazwie...

To tylko taka ciekawostka...

pozdrawiaMM

konto usunięte

Temat: Działało (SQL 2000) - nie działa (SQL 2005)

trzeba by obejsc
SELECT crdate as crdate1, * FROM sysobjects WHERE type='U' ORDER BY crdate DESC

moze by przeszło...
swoją drogą 2008 ma miec jeszcze dokłądniejsze sprawdzanie 'spojnosci i poprawnosci zapytania' w zwiazku z czym moze sie pojawic wiecej takich chochlikow - moze i lepiej, będzie wyrabiać lepsze nawyki w pisaniu kodu.

konto usunięte

Temat: Działało (SQL 2000) - nie działa (SQL 2005)

jakby nie było - MS we swoich wskazówkach przy pisaniu zapytań pisze, żeby jak najmniej stosować '*' i najlepiej (nawet przy zapytaniu dotyczącym wszystkich kolumn z tablicy/tablic) używać nazw kolumn zamiast '*'...
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: Działało (SQL 2000) - nie działa (SQL 2005)

NIe, no jasne - ja o tym wszystkim wiem. I stosuję. To było zapytanie napisane 'na szybko' w QA. (Zresztą po co komu listować w programie tabele - są inne sposoby, a nie taki jak to zapytanie).
Poza tym chyba nigdzie nie używam * (rzadko się zdarza, bym wszystkie pola potrzebował), a wszystkie pola aliasuję.
Tylko zadziwiła mnie niezgodność w dół - chodziło o to, że prawdopodobnie coś w mechaniźmie albo wybierającym, albo sortującym zostało zmienione, że przestało działać...

pozdrawiaMM

konto usunięte

Temat: Działało (SQL 2000) - nie działa (SQL 2005)

Marcin Miga:
[...](Zresztą po co komu listować w programie tabele - są inne
sposoby, a nie taki jak to zapytanie)[...]
Chociażby do tworzenia dokumentacji :)
Marcin G.

Marcin G. ◙Prowadzenie
projektów,
konsultacje i
doradztwo w
zakresi...

Temat: Działało (SQL 2000) - nie działa (SQL 2005)

Marcin Miga:
NIe, no jasne - ja o tym wszystkim wiem. I stosuję. To było zapytanie napisane 'na szybko' w QA. (Zresztą po co komu listować w programie tabele - są inne sposoby, a nie taki jak to zapytanie).
Poza tym chyba nigdzie nie używam * (rzadko się zdarza, bym wszystkie pola potrzebował), a wszystkie pola aliasuję.
Tylko zadziwiła mnie niezgodność w dół - chodziło o to, że prawdopodobnie coś w mechaniźmie albo wybierającym, albo sortującym zostało zmienione, że przestało działać...

pozdrawiaMM

albo jakaś funkcja która generowała aliasy dla duplikatów nazw została pominięta w nowszej wersji... no bo i po co ją zostawiać skoro tak nie powinno się pisać nie ??
;-)



Wyślij zaproszenie do