/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[Mssql-2000] Hvilken collate-værdi skal ma~
Fra : Ukendt


Dato : 20-01-05 11:24

Efter at jeg har flyttet en af mine databaser over på en anden server, har
jeg fået problemer med nogle stored-procedure der anvender temporære
tabeller.

Problemet opstår fordi databasen anvender Danish_Norwegian_CI_AS, mens tmpdb
anvender Collation Name = SQL_Latin1_General_CP1_CI_AS på den ene server, og
Danish_Norwegian_CI_AS på den anden server.

Jeg skal derfor have konfigureret ale mine SQL-servere ens således at
default collation er ens, og derefter have ændret de enkelte databaser.

Der er hundrede forskellige collation værdier man kan vælge imellem. Men
hvilken er den smartest at bruge ?

/Steen



 
 
Jens Gyldenkærne Cla~ (20-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-01-05 13:51

Steen Andreassen skrev:

> Der er hundrede forskellige collation værdier man kan vælge imellem. Men
> hvilken er den smartest at bruge ?

Hvis indholdet i dine databaser er dansk, vil det nok være praktisk at
bruge en af de danske: Danish_Norwegian_*

Valget af undertype afhænger af hvad du finder praktisk. Der er to
hovedundergrupper CI/CS og AI/AS. C-gruppen angiver versalfølsomhed -
altså om der skelnes mellem små og store bogstaver (CI = Case
Insensitive, CS = Case Sensitive). A-gruppen angiver om der skelnes
mellem accentuerede tegn og ikke-accentuerede tegn (fx mellem e og é).
AI er Accent Insensitive og AS er accent sensitive.
Der findes også en _BIN-undertype, hvor samtlige forskelle tæller (data
opfattes binært).

Jeg plejer at anvende Danish_Norwegian_CI_AI

NB: Du kan godt angive COLLATIONS direkte i en forespørgsel - fx som
her:

SELECT *
FROM nytabel n INNER JOIN gltabel g
ON n.tekstfelt = g.tekst COLLATE Danish_Norwegian_CI_AI

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Steen Andreassen (22-01-2005)
Kommentar
Fra : Steen Andreassen


Dato : 22-01-05 20:04

Hej Jens....

Det var faktisk også min første indskydelse at anvende en Danish_Norwegian,
og derfor blev den anvendt på en af serverne.
Men som jeg har forstået ud fra det jeg har kunnet læse mig til, vil de
danske karakterer være til rådighed uanset hvilken model man anvender.
Og hvis det er korrekt, hvad er fordelen så ved at vælge Danish_Norwegian
frem for en anden.

Med hensyn til at anvende COLLATE i en forespørgsel, så er den workaround vi
anvender i øjeblikket. Men jeg tror at man skal holde tungen lige i munden
hvis man skal tage hensyn til dette i al den programmering man laver.

Mvh
Steen

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:16dsdik9s3hun$.dlg@jcdmfdk.invalid...
> Steen Andreassen skrev:
>
>> Der er hundrede forskellige collation værdier man kan vælge imellem. Men
>> hvilken er den smartest at bruge ?
>
> Hvis indholdet i dine databaser er dansk, vil det nok være praktisk at
> bruge en af de danske: Danish_Norwegian_*
>
> Valget af undertype afhænger af hvad du finder praktisk. Der er to
> hovedundergrupper CI/CS og AI/AS. C-gruppen angiver versalfølsomhed -
> altså om der skelnes mellem små og store bogstaver (CI = Case
> Insensitive, CS = Case Sensitive). A-gruppen angiver om der skelnes
> mellem accentuerede tegn og ikke-accentuerede tegn (fx mellem e og é).
> AI er Accent Insensitive og AS er accent sensitive.
> Der findes også en _BIN-undertype, hvor samtlige forskelle tæller (data
> opfattes binært).
>
> Jeg plejer at anvende Danish_Norwegian_CI_AI
>
> NB: Du kan godt angive COLLATIONS direkte i en forespørgsel - fx som
> her:
>
> SELECT *
> FROM nytabel n INNER JOIN gltabel g
> ON n.tekstfelt = g.tekst COLLATE Danish_Norwegian_CI_AI
>
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html



Jesper Sommer (22-01-2005)
Kommentar
Fra : Jesper Sommer


Dato : 22-01-05 20:11

Steen Andreassen wrote:
> Med hensyn til at anvende COLLATE i en forespørgsel, så er den workaround vi
> anvender i øjeblikket. Men jeg tror at man skal holde tungen lige i munden
> hvis man skal tage hensyn til dette i al den programmering man laver.

.... ikke hvis du anvender en central mekanisme i dit program til at
udføre forespørgslerne med ... altså en slags intern "Query Builder".
Det er ret almindeligt at lave sit eget mini-database-lag i
applikationer, som sikrer at man kan centralisere forskellige ting

Det emne hører måske mere hjemme i programmering, så opfølgning er sat
til dk.edb.programmering

Venligst

- Jesper

Jens Gyldenkærne Cla~ (22-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 22-01-05 20:18

Steen Andreassen skrev:

> Men som jeg har forstået ud fra det jeg har kunnet
> læse mig til, vil de danske karakterer være til rådighed
> uanset hvilken model man anvender.

Det er også korrekt. Collation angiver sortering og sammenligning -
ikke hvilke tegn der er til rådighed.

> hvad er fordelen så ved at vælge Danish_Norwegian frem for en
> anden.

Hvis du vælger en forkert collation, vil danske bogstaver bliver
sorteret forkert. Du kan også risikere at fx o og ø bliver opfattet
som samme bogstav.

NB: Læs gerne min signatur.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste