Jeszcze jedna ciekawostka ze świata Azure jest taka, że jest on bardzo UNICODE. Jeżeli w tabelce mamy pole typu VARCHAR, a w nim np. słówko 'PAWEŁ' to szukając prostym zapytaniem :
SELECT * FROM TABELKA WHERE NAZWA = 'PAWEŁ';
... otrzymamy zero wyników. Azure sprytnie zamienia sobie "Ł" na "L" i szuka 'PAWEL' i oczywiście nie znajduje. Rozwiązania na znalezienie interesujących nas rekordów są dwa : zmiana pola z VARCHAR na NVARCHAR lub napisanie zapytania w taki sposób :
SELECT * FROM TABELKA WHERE NAZWA = N'PAWEŁ';
Wydaje mi się, że to nie kwestia Azure - sam SQL Server tak działa.
OdpowiedzUsuńSpróbuj:
CREATE TABLE dbo.Table1 (Column1 varchar(20))
GO
INSERT INTO dbo.Table1 VALUES('PAWEŁ')
GO
SELECT * FROM dbo.Table1
Nie bardzo rozumiem co masz na myśli Marku.
OdpowiedzUsuńO jednej kwestii w sumie nie napisałem. Collation na bazie to Polish_CI_AS.
Chodziło mi o to, że to nie Azure sprytnie zamienia sobie "Ł" na "L", a SQL Server.
OdpowiedzUsuńMiałem ostatnio podobny problem w systemie nie korzysta z Azure - w pliku .sql były polskie litery, skrypt wykonywał się prawidłowo, a dane w tabeli nie miały polskich liter. I właśnie to zapomniałem dodać w pierwszym komentarzu - polskie litery były "zjadane" lub nie w zależności od ustawionego collation.