Discussione:
Cambio "tipo di dati"
(troppo vecchio per rispondere)
Teo
2007-09-03 12:44:00 UTC
Permalink
Saluti a tutto l'NG

Mi sono accorto (e faccio il mea culpa :-( ) che devo modificare il tipo di
dati di una colonna; cioè devo modificare il tipo di dati da SMALLDATETIME a
DATETIME.

Essendo un tabella di di grosse dimensioni SQLServer2005 mi va in time out.

Come posso eseguire questa modofica?
La tabella in questione contiene circa 700.000 record il campo a cui devo
modificare il tipo di dati è una chiave con indice cluster.

Grazie!
Luca Bianchi
2007-09-03 13:29:08 UTC
Permalink
Post by Teo
Essendo un tabella di di grosse dimensioni SQLServer2005 mi va in time out.
Come posso eseguire questa modofica?
Stai eseguendo la modifica utilizzando l'interfaccia grafica? Se si esegui
il comando ALTER TABLE da una finestra di query

ALTER TABLE schema.table
ALTER COLUMN nomecampo nuovodatatype NOT NULL
Post by Teo
Grazie!
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://community.ugiss.org/blogs/lbianchi
Francesco Quaratino
2007-09-03 13:55:23 UTC
Permalink
Post by Teo
Saluti a tutto l'NG
Ciao Teo
Post by Teo
Mi sono accorto (e faccio il mea culpa :-( ) che devo modificare il tipo di
dati di una colonna; cioè devo modificare il tipo di dati da
SMALLDATETIME a
Post by Teo
DATETIME.
Essendo un tabella di di grosse dimensioni SQLServer2005 mi va in time out.
...forse perchè la modifica la fai attraverso Management Studio e non
con T-SQL ?
Post by Teo
Come posso eseguire questa modofica?
La tabella in questione contiene circa 700.000 record il campo a cui devo
modificare il tipo di dati è una chiave con indice cluster.
DROP INDEX IX_myTable ON [dbo].[myTable]
GO

ALTER TABLE [dbo].[myTable]
ALTER COLUMN [myColumn] [datetime] NOT NULL
GO

CREATE CLUSTERED INDEX IX_myTable ON [dbo].[myTable] (myColumn)
GO
Post by Teo
Grazie!
prego
--
[Francesco Quaratino]
"Enjoy Your SeQueL"
http://community.ugiss.org/blogs/sgainz
Francesco Quaratino
2007-09-03 15:18:12 UTC
Permalink
Post by Teo
Saluti a tutto l'NG
..dimenticavo,
se si tratta di una PRIMARY KEY e non solo di un Indece clusterd, allora:

--elimina la chiave primaria e quindi l'indice clusterd
ALTER TABLE [dbo].[myTable]
DROP CONSTRAINT PK_myTable
GO

--modifica il tipo di dato
ALTER TABLE [dbo].[myTable]
ALTER COLUMN [myColumn] [datetime] NOT NULL
GO

--aggiungi nuovamente la chiave primaria con unique indice clustered annesso
ALTER TABLE [dbo].[myTable]
ADD CONSTRAINT PK_myTable PRIMARY KEY (myColumn)
GO


Ciao!
--
[Francesco Quaratino]
"Enjoy Your SeQueL"
http://community.ugiss.org/blogs/sgainz
Continua a leggere su narkive:
Loading...