CREATE INDEX e INCLUDE IN SQL 2000

martedì 28 giugno 2011 - 14.06

gsflash80 Profilo | Junior Member

Ciao a tutti, quando stavo creando la tabella e poi create index con include, in sql 2008 funziona bene e invece in sql 2000 non funziona proprio. come mai?

CREATE NONCLUSTERED INDEX [index_profile] ON [database].[PROFILE]
(
[ID_DOCUMENTO_PRINCIPALE] ASC,
[CHA_DA_PROTO] ASC,
[ID_REGISTRO] ASC,
[CHA_TIPO_PROTO] ASC,
[SYSTEM_ID] ASC,
[ID_TIPO_ATTO] ASC
)
INCLUDE ( [DOCNUMBER],
[AUTHOR],
[CREATION_TIME],
[NUM_PROTO],
[NUM_ANNO_PROTO],
[DTA_PROTO],
[DTA_ANNULLA],
[VAR_SEGNATURA],
[CHA_PRIVATO],
[CHA_EVIDENZA],
[VAR_PROF_OGGETTO],
[CHA_PERSONALE],
[CHA_IN_ARCHIVIO],
[PROT_TIT])
GO

e invece anche come si fa a visualizzare tutti gli indexes nello stesso database e con utente, così potrei confrontare le indici tra il DB di origine (sql 2008) e DB di destinazione (sql 2000).
Grazie mille (garibaldi)
----

..:: GSFLASH ::..
http://www.gsflash.it
http://blogs.dotnethell.it/gabrieleserpi/
MCTS - ACP - OCP - ECDL - ACSP
Ubuntu 11.04/OpenSuse 10.3
Vista Seven/MacOSX SnowLeopard

alx_81 Profilo | Guru

>Ciao a tutti, quando stavo creando la tabella e poi create index
>con include, in sql 2008 funziona bene e invece in sql 2000 non
>funziona proprio. come mai?
Ciao, perchè non esisteva ancora.
Puoi solo fare indici di copertura mettendo nella chiave i campi della include. Ma non è la stessa cosa.

>e invece anche come si fa a visualizzare tutti gli indexes nello
>stesso database e con utente, così potrei confrontare le indici
>tra il DB di origine (sql 2008) e DB di destinazione (sql 2000).
Per operazioni di questo tipo ti consiglio di usare o script preconfezionati per listare gli indici (per utente??? che significa? il creatore?) oppure usare tool che ti fanno la diff del database.

>Grazie mille (garibaldi)
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gsflash80 Profilo | Junior Member

puoi scrivere l'esempio per include index? Grazie

E anche sulla lista degli indici creato dal creatore. Grazie

Seguo più facile gli esempi.
----

..:: GSFLASH ::..
http://www.gsflash.it
http://blogs.dotnethell.it/gabrieleserpi/
MCTS - ACP - OCP - ECDL - ACSP
Ubuntu 11.04/OpenSuse 10.3
Vista Seven/MacOSX SnowLeopard

alx_81 Profilo | Guru

>puoi scrivere l'esempio per include index? Grazie
ehm.. non esiste proprio
dovresti mettere tutti i campi nella create, ma non è la stessa cosa.
La INCLUDE permette di aggiungere solo a livello della foglia dell'indice.. non per ogni livello nella chiave..

>E anche sulla lista degli indici creato dal creatore. Grazie
purtroppo che io sappia non vi sono informazioni relative ai creatori degli indici, mi spiace.
ci sono due Object Catalog View che contengono informazioni sugli indici:
sys.indexes
sys.index_columns

per approfondire, leggi qui: http://msdn.microsoft.com/en-us/library/ms189783.aspx
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gsflash80 Profilo | Junior Member

>puoi scrivere l'esempio per include index? Grazie
>ehm.. non esiste proprio
>dovresti mettere tutti i campi nella create, ma non è la stessa cosa.
>La INCLUDE permette di aggiungere solo a livello della foglia dell'indice.. non per ogni livello nella chiave..

ho postato apposta il blocco, ho cercato molto in google e non trovo il soluzione...

>E anche sulla lista degli indici creato dal creatore. Grazie
>purtroppo che io sappia non vi sono informazioni relative ai creatori degli indici, mi spiace.
>ci sono due Object Catalog View che contengono informazioni sugli indici:
>sys.indexes
>sys.index_columns

ho già provato con information_schema.indexes ma non capisco che non funziona, mentre information_schema.table funziona, ma non si vedono quali indexes che hanno. e poi sysindexes, non sys.indexes perchè in 2000 non va, comunque non è sufficiente.
----

..:: GSFLASH ::..
http://www.gsflash.it
http://blogs.dotnethell.it/gabrieleserpi/
MCTS - ACP - OCP - ECDL - ACSP
Ubuntu 11.04/OpenSuse 10.3
Vista Seven/MacOSX SnowLeopard

alx_81 Profilo | Guru

>ho postato apposta il blocco, ho cercato molto in google e non trovo il soluzione...
forse non mi sono spiegato. Non è proprio possibile fare quello che vuoi su 2000.
L'unica alternativa è fare un indice che ha tutti quei campi nella create ma NON E' LA STESSA COSA, quindi fai molta attenzione ad usare il seguente script, vanno fatte analisi di spazio occupato, validità di uno script del genere per la tua realtà, ecc:
CREATE NONCLUSTERED INDEX [index_profile] ON [database].[PROFILE] ( [ID_DOCUMENTO_PRINCIPALE] ASC, [CHA_DA_PROTO] ASC, [ID_REGISTRO] ASC, [CHA_TIPO_PROTO] ASC, [SYSTEM_ID] ASC, [ID_TIPO_ATTO] ASC, [DOCNUMBER], [AUTHOR], [CREATION_TIME], [NUM_PROTO], [NUM_ANNO_PROTO], [DTA_PROTO], [DTA_ANNULLA], [VAR_SEGNATURA], [CHA_PRIVATO], [CHA_EVIDENZA], [VAR_PROF_OGGETTO], [CHA_PERSONALE], [CHA_IN_ARCHIVIO], [PROT_TIT]) GO

>ho già provato con information_schema.indexes ma non capisco
>che non funziona, mentre information_schema.table funziona, ma
>non si vedono quali indexes che hanno. e poi sysindexes,
>non sys.indexes perchè in 2000 non va, comunque non è sufficiente.
INFORMATION_SCHEMA.indexes non esiste, non funziona per quello.
Mi spiace, ma quelle sono le uniche informazioni che hai.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gsflash80 Profilo | Junior Member

http://technet.microsoft.com/en-us/library/ms174156.aspx

visto che ce indexes..... mah!

quel blocco che hai postato, non andrebbe bene?
----

..:: GSFLASH ::..
http://www.gsflash.it
http://blogs.dotnethell.it/gabrieleserpi/
MCTS - ACP - OCP - ECDL - ACSP
Ubuntu 11.04/OpenSuse 10.3
Vista Seven/MacOSX SnowLeopard

alx_81 Profilo | Guru

>http://technet.microsoft.com/en-us/library/ms174156.aspx
quello è Compact...
"The following table lists Information Schema views that are supported by SQL Server Compact 3.5."

>visto che ce indexes..... mah!
non c'è, leggi qui: http://msdn.microsoft.com/en-us/library/aa933204(v=sql.80).aspx

>quel blocco che hai postato, non andrebbe bene?
ripeto, non è la stessa cosa. Hai tutti i campi, ma non sono nella foglia dell'indice come con la INCLUDE.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5