Avatar billede websam Nybegynder
02. august 2002 - 19:57 Der er 6 kommentarer og
2 løsninger

Order By på sql server !

Hejsa !

Er der et klogt hoved der ved hvordan man sætter
en MSsql server til automatisk at sortere efter Id ???

/WebSam
Avatar billede coltau Juniormester
02. august 2002 - 20:15 #1
Hvis ID er det primære index vil et udtræk uden angivelse af rækkefølgen vel anvende ID som rækkefølge. Altså:

strSQL = "select * from tabelnavn"

ellers skal man vel bare skrive dette:

strSQL = "select * from tabelnavn order by ID"
Avatar billede websam Nybegynder
02. august 2002 - 21:09 #2
Oki alt det har vi prøvet men uden resultat ved du hvordan man
resætter id på en MSSql Server ???
Avatar billede kichian Nybegynder
02. august 2002 - 22:11 #3
SELECT * from tabelnavn order by ID,
vil returnere rækkerne sorteret efter ID, med det mindste ID først!!.

Og som coltau skrev, så vil dette sandsynligvis ske automatisk, hvis ID er primær-nøgle.

Prøv det igen!!

Og hvorfor resette? Hvis ID er autogenereret, så skal den bare bruges som id til rækken. Hvis du har brug for noget fortløbende som starter ved fx. 1, så brug en selvstændig tabel til det.
Avatar billede coltau Juniormester
03. august 2002 - 11:18 #4
Er der fejl i tabellen. ? Indexfejl. ? Viser den ikke elementerne i den korrekte rækkefølge. ?

Hvis det er tilfældet skal tabellen reindexeres. Det er der sikkert en kommando til i MySQL-Front.
Avatar billede websam Nybegynder
03. august 2002 - 11:24 #5
Jeps der er fejl i tabbellen og vi kan ikke lige se os ud af hvordan vi skal løse problemet men det kommer vel :-))
Avatar billede a1a1 Novice
03. august 2002 - 11:39 #6
hvis det er når sqlserver "viser" data det er sorteret "forkert", vil jeg tro at det er:
1. Du har fjernet dit index fra ID
lav nyt clustered index på ID

2. lavet et/flere (andre) felter med clustered index.
lav nyt clustered index på ID (der kan kun være et clustered index pr. tabel så hvis der allerede er et skal det fjernes)

3. Index er gået i udu
rebuildindex (kan ikke lige huske den rigtige kommando )

;)
Avatar billede a1a1 Novice
03. august 2002 - 11:42 #7
rebuild index (fra sql server hjælp)

DBCC DBREINDEX
Rebuilds one or more indexes for a table in the specified database.

Syntax
DBCC DBREINDEX
    (    [ 'database.owner.table_name'   
            [ , index_name
                [ , fillfactor ]
            ]
        ]
    )    [ WITH NO_INFOMSGS ]

Arguments
'database.owner.table_name'

Is the name of the table for which to rebuild the specified index(es). Database, owner, and table names must conform to the rules for identifiers. For more information, see Using Identifiers. The entire database.owner.table_name must be enclosed in single quotation marks (') if either the database or owner parts are supplied. The single quotation marks are not necessary if only table_name is specified.

index_name

Is the name of the index to rebuild. Index names must conform to the rules for identifiers. If index_name is not specified or is specified as ' ', all indexes for the table are rebuilt.

fillfactor

Is the percentage of space on each index page to be used for storing data when the index is created. fillfactor replaces the original fillfactor as the new default for the index and for any other nonclustered indexes rebuilt because a clustered index is rebuilt. When fillfactor is 0, DBCC DBREINDEX uses the original fillfactor specified when the index was created.

WITH NO_INFOMSGS

Suppresses all informational messages (with severity levels from 0 through 10).

Remarks
DBCC DBREINDEX rebuilds an index for a table or all indexes defined for a table. By allowing an index to be rebuilt dynamically, indexes enforcing either PRIMARY KEY or UNIQUE constraints can be rebuilt without having to drop and re-create those constraints. This means an index can be rebuilt without knowing the table's structure or constraints, which could occur after a bulk copy of data into the table.

If either index_name or fillfactor is specified, all preceding parameters must also be specified.

DBCC DBREINDEX can rebuild all of the indexes for a table in one statement, which is easier than coding multiple DROP INDEX and CREATE INDEX statements. Because the work is done by one statement, DBCC DBREINDEX is automatically atomic, while individual DROP INDEX and CREATE INDEX statements would have to be put in a transaction to be atomic. Also, DBCC DBREINDEX can take advantage of more optimizations with DBCC DBREINDEX than it can with individual DROP INDEX and CREATE INDEX statements.

DBCC DBREINDEX is not supported for use on system tables.

Result Sets
Whether or not any of the options (except NO_INFOMSGS) are specified (the table name must be specified), DBCC DBREINDEX returns this result set; this example uses the authors table of the pubs database (values will vary):

Index (ID = 1) is being rebuilt.
Index (ID = 2) is being rebuilt.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

DBCC DBREINDEX returns this result set (message) if the NO_INFOMSGS option is specified:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Permissions
DBCC DBREINDEX permissions default to members of the sysadmin fixed server role, the db_owner and db_ddladmin fixed database roles, and the table owner, and are not transferable.

Examples
A. Rebuild an index
This example rebuilds the au_nmind clustered index with a fillfactor of 80 on the authors table in the pubs database.

DBCC DBREINDEX ('pubs.dbo.authors', UPKCL_auidind, 80)

B. Rebuild all indexes
This example rebuilds all indexes on the authors table using a fillfactor value
of 70.

DBCC DBREINDEX (authors, '', 70)

;)
Avatar billede websam Nybegynder
03. august 2002 - 11:45 #8
Oki det vil jeg lige prøve af når jeg kan komme til serveren igen sidder ikke lige ved den nu !!!
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
Kurser inden for grundlæggende programmering

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