Hoppa till innehåll

Sajter om it & teknik

  • CIO Sweden It-strategi, affärsnytta och kundrelationer.
  • Cloud Magazine Allt om cloud computing.
  • Computer Sweden Dagliga nyheter om it, telekom och affärer.
  • IDG.se De viktigaste nyheterna från IDGs nyhetssajter.
  • Internetworld Allt om affärer på internet.
  • IT i vården Mötet mellan vård och it.
  • IT24 Affärerna och människorna i it-branschen.
  • M3 Sveriges prylsajt
  • MacWorld Allt om Mac, OS X, Iphone och Ipad.
  • PC för Alla Sveriges största och mest lästa datortidning.
  • Säkerhet24 Mötesplatsen för alla it-säkerhetsansvariga i Sverige.
  • TechWorld För it-avdelningar, it-chefer och it-proffs.
  • IT.Branschen Sveriges enda branschtidning för IT-återförsäljare.
  • Pitchbibblan Sveriges startups visar upp sig

Andra områden

  • Anbud24 För anbudsansvariga och bid managers.
  • CFO World Nätverket för Sveriges ekonomiproffs.
  • Lag & rätt Regler och verktyg för miljöproffs.
  • Miljöaktuellt Hållbar utveckling för proffs och beslutsfattare.
  • Studio För dig som producerar ljud och musik.
  • Upphandling24 Oberoende nyhetssajt om offentlig upphandling.

Tjänster

Stäng
Foto

collation conflict between "Finnish_Swedish_CI_AS" and "Finnish_Swedish_CI_AI"


  • Vänligen logga in för att kunna svara
4 svar till detta ämne

#1 andjoh78

andjoh78

    Användare

  • Medlemmar
  • PipPip
  • 43 inlägg

Postad 8 maj 2008 klockan 05:30

Är rätt ny i SQL och skulle behöva hjälp.Jag försöker lista data ur flera databaser som sedan ska hamna i excel. Vi har Microsoft SQL Server 2005.

SELECT [Resultatenhet_1],[Namn]
FROM [Databas1].[dbo].[Anställda]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Databas2].[dbo].[Anställda]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Databas3].[dbo].[Anställda]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Databas4].[dbo].[Anställda]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Databas5].[dbo].[Anställda]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Databas6].[dbo].[Anställda]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL

Får felmeddelande
Msg 468, Level 16, State 9, Line 1
Cannot resolve the collation conflict between "Finnish_Swedish_CI_AS" and "Finnish_Swedish_CI_AI" in the UNION operation.


Frågor
1. Jag skulle vilja kolla collate värdet på alla databaser, tabeller och kolumner på servern...hur gör jag det lättast?
2. Någon som har en bra lösning på problemet med collate och union...har provat olika varianter som jag hittat på nätet men efter åtgärd så får jag fortfarande samma felmeddelande. Eller kan man bygga frågan på något annat sätt så den inte ä lika känslig?

Tacksam för all hjälp jag kan få

//Anders


#2 Magnus Ahlkvist

Magnus Ahlkvist

    SQL Server-nerd

  • Medlemmar
  • PipPipPipPip
  • 1 245 inlägg
  • Ort:Enköping

Postad 15 maj 2008 klockan 13:03

1.
Default collation för varje databas
SELECT * FROM sys.databases
Collation för varje kolumn i nuvarande databas, join med sys.tables för att få fram tabellnamnet
select t.name as tablename,* from sys.columns c inner join sys.tables t on t.object_id=c.object_id

2. Du kan använda COLLATE i din SELECT-sats:

SELECT [Resultatenhet_1],[Namn]
FROM [Database1].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
COLLATE Finnish_Swedish_CI_AS
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Database3].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
COLLATE Finnish_Swedish_CI_AS
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Database3].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
COLLATE Finnish_Swedish_CI_AS
UNION
SELECT [Resultatenhet_1],[Namn]
FROM [Database4].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
COLLATE Finnish_Swedish_CI_AS
UNION
SELECT [Resultatenhet_5],[Namn]
FROM [Database1].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
COLLATE Finnish_Swedish_CI_AS
UNION
SELECT [Resultatenhet_6],[Namn]
FROM [Database1].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
COLLATE Finnish_Swedish_CI_AS

--
Politikblogg: http://magnusahlkvist.bloggvanstern.se
SQL Server-blogg: http://www.underlandet.com/SqlServer


#3 andjoh78

andjoh78

    Användare

  • Medlemmar
  • PipPip
  • 43 inlägg

Postad 16 maj 2008 klockan 08:22

Tack Magnus,

Punkt 1 fungerade kanon.

Får dock felmeddelande på punkt 2

Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword 'COLLATE'.

Några tips?

//Anders


#4 Magnus Ahlkvist

Magnus Ahlkvist

    SQL Server-nerd

  • Medlemmar
  • PipPipPipPip
  • 1 245 inlägg
  • Ort:Enköping

Postad 16 maj 2008 klockan 22:46

Det beror på att min syntax var helt åt skogen. COLLATE gör man ju på kolumnnivå. Därför blir det såhär:

SELECT [Resultatenhet_1] COLLATE Finnish_Swedish_CI_AS ,[Namn] COLLATE Finnish_Swedish_CI_AS
FROM [Database1].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1] COLLATE Finnish_Swedish_CI_AS,[Namn] COLLATE Finnish_Swedish_CI_AS
FROM [Database3].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1] COLLATE Finnish_Swedish_CI_AS,[Namn] COLLATE Finnish_Swedish_CI_AS
FROM [Database3].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1] COLLATE Finnish_Swedish_CI_AS,[Namn] COLLATE Finnish_Swedish_CI_AS
FROM [Database4].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1] COLLATE Finnish_Swedish_CI_AS,[Namn] COLLATE Finnish_Swedish_CI_AS
FROM [Database5].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL
UNION
SELECT [Resultatenhet_1] COLLATE Finnish_Swedish_CI_AS,[Namn] COLLATE Finnish_Swedish_CI_AS
FROM [Database6].[dbo].[ANSTÄLLDA]
WHERE avgångsdatum > '2008-04-30' OR avgångsdatum IS NULL


--
Politikblogg: http://magnusahlkvist.bloggvanstern.se
SQL Server-blogg: http://www.underlandet.com/SqlServer


#5 andjoh78

andjoh78

    Användare

  • Medlemmar
  • PipPip
  • 43 inlägg

Postad 19 maj 2008 klockan 15:16

Mycket tack för hjälpen...fungerade klockrent

//Anders





0 användare läser detta ämne

0 medlemmar, 0 gäster, 0 anonyma medlemmar

 
 

Senaste trådarna

 

pc för alla Senaste nytt


Aktuella jobb

Prenumerera på nyheter

Missa inte PC för Allas
smarta nyhetsbrev
Läs mer om nyhetsbreven här!
  PFA Express
  Veckans surftips
  Extreme
PC för Alla-nätverket