Cambiar valor por defecto de un datetime

09/05/2006 - 11:27 por Jesus | Informe spam
Hola a todos:

Tengo una tabla con un campo datetime de valor por defecto ' ' y lo quiero
modificar a getdate(). Lo intento con esta instruccion y me siempre el mismo
error de sintaxis incorrecta.
alter table mi_tabla alter column campo default getdate()

¿Q es lo q está mal?

Muchas gracias por adelantado...

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
09/05/2006 - 13:25 | Informe spam
Hola Jesús,

Según los «Libros en pantalla» de SQL Server 2000:

[...] Para modificar una definición DEFAULT mediante Transact-SQL o SQL-DMO, antes deberá eliminar la definición DEFAULT existente y, a continuación, volver a crearla con la nueva definición

Es decir, prueba con:

ALTER TABLE mitabla ALTER COLUMN micolumna DROP DEFAULT

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 Jesus
09/05/2006 - 13:46 | Informe spam
Hola Rubén:

No consigo q funcione, me sigue dando el mismo error
He probado a crear un nuevo campo datetime y tampoco...

ALTER TABLE tabla add campo_nuevo datetime DEFAULT (' ')
Lo crea correctamente pero...

ALTER TABLE tabla ALTER COLUMN campo_nuevo DROP DEFAULT
Y me da el error...
Servidor: mensaje 156, nivel 15, estado 1, línea 1
Incorrect syntax near the keyword 'DEFAULT'.
Respuesta Responder a este mensaje
#3 Alejandro Mesa
09/05/2006 - 14:47 | Informe spam
Jesus,

Ejemplo:

create table dbo.t1 (
c1 datetime null constraint df_t1_c1 default('')
)
go

insert into t1 default values
go

select * from dbo.t1
go

alter table dbo.t1
drop constraint df_t1_c1
go

insert into t1 default values
go

select * from dbo.t1
go

alter table dbo.t1
add constraint df_t1_c1 default (getdate()) for c1
go

insert into t1 default values
go

select * from dbo.t1
go

drop table dbo.t1
go

Si al crear la tabla, no especificastes explicitamente el nombre de la
restriccion "default", entonces debes buscar el nombre de la restriccion
usando sp_help, sp_helpconstraint o indagando en la tabla de sistema
sysconstraints, eliminarla y luego adicionar la que deseas.

declare @sql nvarchar(4000)
declare @cn sysname

select
@cn = object_name(constid)
from
sysconstraints
where
[id] = object_id('dbo.t1')
and col_name([id], colid) = 'c1'
and objectproperty(constid, 'IsDefaultCnst') = 1

if not (@cn is null)
begin
set @sql = N'alter table dbo.t1 drop constraint [' + @cn + N']'
exec sp_executesql @sql
end
go


AMB

"Jesus" wrote:


Hola Rubén:

No consigo q funcione, me sigue dando el mismo error
He probado a crear un nuevo campo datetime y tampoco...

ALTER TABLE tabla add campo_nuevo datetime DEFAULT (' ')
Lo crea correctamente pero...

ALTER TABLE tabla ALTER COLUMN campo_nuevo DROP DEFAULT
Y me da el error...
Servidor: mensaje 156, nivel 15, estado 1, línea 1
Incorrect syntax near the keyword 'DEFAULT'.


Respuesta Responder a este mensaje
#4 Jesus
09/05/2006 - 18:13 | Informe spam
Muchas gracias ya he podido...

Un saludo...

"Alejandro Mesa" escribió:

Jesus,

Ejemplo:

create table dbo.t1 (
c1 datetime null constraint df_t1_c1 default('')
)
go

insert into t1 default values
go

select * from dbo.t1
go

alter table dbo.t1
drop constraint df_t1_c1
go

insert into t1 default values
go

select * from dbo.t1
go

alter table dbo.t1
add constraint df_t1_c1 default (getdate()) for c1
go

insert into t1 default values
go

select * from dbo.t1
go

drop table dbo.t1
go

Si al crear la tabla, no especificastes explicitamente el nombre de la
restriccion "default", entonces debes buscar el nombre de la restriccion
usando sp_help, sp_helpconstraint o indagando en la tabla de sistema
sysconstraints, eliminarla y luego adicionar la que deseas.

declare @sql nvarchar(4000)
declare @cn sysname

select
@cn = object_name(constid)
from
sysconstraints
where
[id] = object_id('dbo.t1')
and col_name([id], colid) = 'c1'
and objectproperty(constid, 'IsDefaultCnst') = 1

if not (@cn is null)
begin
set @sql = N'alter table dbo.t1 drop constraint [' + @cn + N']'
exec sp_executesql @sql
end
go


AMB

"Jesus" wrote:

>
> Hola Rubén:
>
> No consigo q funcione, me sigue dando el mismo error
> He probado a crear un nuevo campo datetime y tampoco...
>
> ALTER TABLE tabla add campo_nuevo datetime DEFAULT (' ')
> Lo crea correctamente pero...
>
> ALTER TABLE tabla ALTER COLUMN campo_nuevo DROP DEFAULT
> Y me da el error...
> Servidor: mensaje 156, nivel 15, estado 1, línea 1
> Incorrect syntax near the keyword 'DEFAULT'.
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida