Avatar billede simsen Mester
10. april 2008 - 14:26 Der er 11 kommentarer og
1 løsning

Rækkefølge på tabel række er forkert

Hej,

Jeg bruger en MSSQL 2005 Server og dertil Server Management Studio.....

Jeg har en tabel, hvor jeg har 8 rækker......

Id Navn
11 Hans
12 Jens
13 Lars
14 Lene
15 Hanne
16 Kurt
17 Claus
9  Lone

Som I kan se, så tager den ikke Id 9 før de andre rækker - selve ID kolonnen er en int datatype og den har så en en (Is Identity) sat til Yes......

Det irriterer mig voldsomt (jeg tester af lige nu) at når jeg indsætter rækker, at jeg skal flyve og fare op og ned med curseren for at finde de rækker jeg sender ind........

Er der ikke en mulighed for, at den sorterer på normal dansk ......altså at 9 kommer før 11 osv., når jeg åbner for tabellen?

mvh
simsen :-)
Avatar billede simsen Mester
10. april 2008 - 14:28 #1
Hov det skal lige tilføjes - det er ikke i en select jeg har brug for det.....men KUN i Server Management Studio, når jeg åbner tabellen.........
Avatar billede bennytordrup Nybegynder
10. april 2008 - 14:41 #2
Den rækkefølge ligner mistænkeligt en alfanumerisk sortering på kolonnen. Kan du scripte tabellen som Create?
Avatar billede simsen Mester
10. april 2008 - 14:48 #3
Jeg ved ikke, hvad du mener med scripte tabellen som Create?
Avatar billede simsen Mester
10. april 2008 - 14:51 #4
Hov - jeg har lige højreklikket og jow det kan jeg godt - vil du have alle 768 rækker?
Avatar billede simsen Mester
10. april 2008 - 14:52 #5
Forsøger lige med de her rækker først - vil du have flere - må du sige til - for det siger ikke mig en hujende dyt.....

USE [CRM]
GO
/****** Object:  Table [dbo].[tCompany]    Script Date: 04/10/2008 14:48:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tCompany](
    [fCompanyPId] [int] IDENTITY(1,1) NOT NULL,
    [fCompanyAccount] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyAlias] [nvarchar](100) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyName] [nvarchar](100) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyAddress1] [nvarchar](100) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyfAddress2] [nvarchar](100) COLLATE Danish_Norwegian_CI_AS NULL,
    [fZipCodeFId] [int] NULL,
    [fCompanyState] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyPhone] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyFax] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyEmail] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyHomepage] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fDimDetailCustomF1Id] [int] NULL,
    [fCompanyNote] [ntext] COLLATE Danish_Norwegian_CI_AS NULL,
    [fDimDetailCustomF2Id] [int] NULL,
    [fCompanyCvr] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fCompanyPnr] [nvarchar](50) COLLATE Danish_Norwegian_CI_AS NULL,
    [fDimDetailCustomF3Id] [int] NULL,
    [fCompanyOrder] [int] NULL,
    [fDimDetailCustomF4Id] [int] NULL,
CONSTRAINT [aaaaaT_Company_PK] PRIMARY KEY NONCLUSTERED
(
    [fCompanyPId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
EXEC sys.sp_addextendedproperty @name=N'AllowZeroLength', @value=N'False' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'Attributes', @value=N'17' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'CollatingOrder', @value=N'1044' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'ColumnHidden', @value=N'False' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'ColumnOrder', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'ColumnWidth', @value=N'-1' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'DataUpdatable', @value=N'False' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'Name', @value=N'F_Company_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'OrdinalPosition', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'Required', @value=N'False' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'Size', @value=N'4' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'SourceField', @value=N'F_Company_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'SourceTable', @value=N'T_Company' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
EXEC sys.sp_addextendedproperty @name=N'Type', @value=N'4' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tCompany', @level2type=N'COLUMN',@level2name=N'fCompanyPId'
GO
Avatar billede erikjacobsen Ekspert
10. april 2008 - 15:52 #6
PRIMARY KEY NONCLUSTERED  betyder at du ikke får listet det sorteret med mindre du selv sorterer det. CLUSTERED vil give det du forventer.
Avatar billede simsen Mester
10. april 2008 - 16:27 #7
Hej Erik,

Hvor ændrer jeg det CLUSTERED henne på den ekstisterende database? og smid et svar....så du kan få nogle points :-)
Avatar billede erikjacobsen Ekspert
10. april 2008 - 17:10 #8
Det har jeg nu aldrig prøvet, men fjern den primære nøgle og opret den igen angivet som CLUSTERED ... vil jeg tro.
Avatar billede arne_v Ekspert
11. april 2008 - 00:38 #9
Generelt bør man lave en ORDER BY hvis man vil have data i en bestemt rækkefølge.
Avatar billede simsen Mester
11. april 2008 - 08:23 #10
Hej Erik

Det var åbenbart det der skulle til.........altså fjerne og tilføje den primære nøgle...... Jeg kunne dog ikke angive det som clustered nogensteder.... Tak for hjælpen og husk at smide et svar :-)

Hej Arne

Jo det gør jeg jo også, når jeg trækker data ud fra tabellen...... Det her var kun et irritationsmoment for mig, når jeg skulle checke tilføjelser og rettelser, jeg havde lavet, direkte i databasen

mvh
simsen :-)
Avatar billede erikjacobsen Ekspert
11. april 2008 - 09:20 #11
Jeg samler slet ikke på point, tak. Ja, det er et irritationsmoment i Server Management Studio, hvor man ikke (så vidt jeg ved) kan tilføje en "order by", når man åbner en tabel.  Jeg sidder sommetider med tabeller, der er for store til at vise på den måde, men som kræver en ad-hoc ændring. Jeg gør så det, at jeg åbner tabellen på 1 million rækker, trykker på "stop"-knappen så hurtigt jeg kan, trykker på "sql"-knappen, tilføjer en "where" (kunne også have været en "order by"), og så har jeg et udsnit af tabellen der kan rettes i. Det kan muligvis gøres nemmere, men når det begynder at irritere for meget, så laver jeg en stump kode, der kan gøre.

Og endelig kan det vel tænkes at et clustered index, der skal holdes sorteret, er en smule dyrere at vedligeholde, end et, der ikke skal holdes sorteret.
Avatar billede simsen Mester
11. april 2008 - 10:42 #12
Erik

Tak igen for hjælpen :-)

Ja - har også brugt din løsning med at klikke på "stop" knappen og så lave min select...men det er for mig uholdbar i længden (når jeg tester), at jeg skal igennem dette hver gang, bare for at se, den nu også har indsat en række med de korrekte data.....

Ja det er nok dyrere, men jeg kan jo altid slå det fra igen (håber jeg da) - når jeg er ovre test fasen og det kører......

mvh
simsen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester