Ayuda con la definicion de un default

18/09/2004 - 01:50 por Luis Gerardo Carrillo Herrera | Informe spam
Saludos a todos.

Tengo una base de datos en MSDE 2000, en ella cree un DEFAULTS para
poner como fecha predeterminada en varios campos de distintas tablas, la
fecha actual del servidor, el codigo es el siguiente

CREATE DEFAULT [def_FechaActual] AS GETDATE()

Aqui asigno el default al campo FechaAlta de la tabla empleado

EXEC sp_bindefault '[dbo].[def_FechaActual]', '[dbo].[Empleado].[FechaAlta]'


El problema es que cuando agrego un registro el valor que me asigna como
fecha predeterminada es 30/12/1899.

Podria alguien ayudarme a que la fecha sea la correcta.

NOTA: Soy novato en esto

___________________________
Ing. Luis Gerardo Carrillo Herrera
GRUPO SIMSA
División Gas
Torreón, Coahuila México

Preguntas similare

Leer las respuestas

#1 Alexeihdz
18/09/2004 - 02:35 | Informe spam
No lo he probado, pero no sería más sencillo solo pasarle
la definición Getdate() en lugar de pasarle una variable
que a la que le asignaste el valor getdate()

Algo así como

EXEC sp_bindefault getdate(), '[dbo].[Empleado].
[FechaAlta]'

Te repito no lo he probado, ni se si sirva pero espero
que te ayude de algo

Saludos a todos.

Tengo una base de datos en MSDE 2000, en ella cree un


DEFAULTS para
poner como fecha predeterminada en varios campos de


distintas tablas, la
fecha actual del servidor, el codigo es el siguiente

CREATE DEFAULT [def_FechaActual] AS GETDATE()

Aqui asigno el default al campo FechaAlta de la tabla


empleado

EXEC sp_bindefault '[dbo].[def_FechaActual]', '[dbo].


[Empleado].[FechaAlta]'


El problema es que cuando agrego un registro el valor


que me asigna como
fecha predeterminada es 30/12/1899.

Podria alguien ayudarme a que la fecha sea la correcta.

NOTA: Soy novato en esto

___________________________
Ing. Luis Gerardo Carrillo Herrera
GRUPO SIMSA
División Gas
Torreón, Coahuila México
.

Respuesta Responder a este mensaje
#2 Luis Gerardo Carrillo Herrera
18/09/2004 - 17:24 | Informe spam
Alexeihdz escribió:

No lo he probado, pero no sería más sencillo solo pasarle
la definición Getdate() en lugar de pasarle una variable
que a la que le asignaste el valor getdate()




Efectivamente Alexeihdz, lo que tu propones es mas simple y funciona a
la perfeccion, pero si ese mismo valor lo vas a aplicar a 30 tablas con
igual numero de campos, si por azares del destino llegas a modificar el
valor entonces tendras que hacer 30 cambios (un campo de fecha actual es
poco probable que lo llegaces a cambiar pero esto aplica para cualquier
tipo de dato predeterminado), en cambio si usas un Default solo tienes
que hacer un cambio y se refejara en los 30 campos.

Aqui un fragmento del libro en pantalla:

Crea un objeto denominado predeterminado. Cuando se enlaza a una columna
o tipo de datos definido por el usuario, un valor predeterminado
especifica un valor que debe insertarse en la columna a la que está
enlazada el objeto (o en todas las columnas, en el caso de un tipo de
datos definido por el usuario) cuando no se proporciona explícitamente
un valor durante la inserción. Los valores predeterminados, que son una
característica de compatibilidad con versiones anteriores, realizan
algunas de las mismas funciones que las definiciones predeterminadas
creadas mediante la palabra clave DEFAULT de las instrucciones ALTER o
CREATE TABLE. Las definiciones predeterminadas son el método preferido y
estándar de restringir los datos de columna, debido a que la definición
se almacena con la tabla y se quita automáticamente cuando se quita
ésta. >>>>>>Sin embargo, un valor predeterminado es útil cuando se
utiliza múltiples veces en múltiples columnas.<<<<<<<

De cualquier manera te agradezco tu interes.

___________________________
Ing. Luis Gerardo Carrillo Herrera
GRUPO SIMSA
División Gas
Torreón, Coahuila México
Respuesta Responder a este mensaje
#3 Antonio Soto
18/09/2004 - 20:53 | Informe spam
Hola Luis,

Podrías indicarnos como realizas las inserciones??

Este código que te pego funciona perfectamente:

use tempdb
go
create table datos (nombre varchar(10),fecha smalldatetime)

CREATE DEFAULT [def_FechaActual] AS GETDATE()

EXEC sp_bindefault '[dbo].[def_FechaActual]', '[dbo].[datos].[Fecha]'

insert into datos values('pepe',DEFAULT)

select * from datos


Espero te sea de ayuda

Saludos

Antonio Soto
Mentor Asociado
Solid Quality Learning
http://www.solidqualitylearning.com

"Luis Gerardo Carrillo Herrera" wrote in
message news:u%
Saludos a todos.

Tengo una base de datos en MSDE 2000, en ella cree un DEFAULTS para
poner como fecha predeterminada en varios campos de distintas tablas, la
fecha actual del servidor, el codigo es el siguiente

CREATE DEFAULT [def_FechaActual] AS GETDATE()

Aqui asigno el default al campo FechaAlta de la tabla empleado

EXEC sp_bindefault '[dbo].[def_FechaActual]',


'[dbo].[Empleado].[FechaAlta]'


El problema es que cuando agrego un registro el valor que me asigna como
fecha predeterminada es 30/12/1899.

Podria alguien ayudarme a que la fecha sea la correcta.

NOTA: Soy novato en esto

___________________________
Ing. Luis Gerardo Carrillo Herrera
GRUPO SIMSA
División Gas
Torreón, Coahuila México
Respuesta Responder a este mensaje
#4 Adrian D. Garcia
19/09/2004 - 01:05 | Informe spam
Para tener en cuenta: los DEFAULTS y los USER DEFINE DATA TYPE solo se
mantienen por compatibilidad con versiones anteriores y noo esta asegurado
que sean soportados en las siguientes versiones es decir... yo no los
usaria.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Luis Gerardo Carrillo Herrera" wrote in
message news:
Alexeihdz escribió:

> No lo he probado, pero no sería más sencillo solo pasarle
> la definición Getdate() en lugar de pasarle una variable
> que a la que le asignaste el valor getdate()


Efectivamente Alexeihdz, lo que tu propones es mas simple y funciona a
la perfeccion, pero si ese mismo valor lo vas a aplicar a 30 tablas con
igual numero de campos, si por azares del destino llegas a modificar el
valor entonces tendras que hacer 30 cambios (un campo de fecha actual es
poco probable que lo llegaces a cambiar pero esto aplica para cualquier
tipo de dato predeterminado), en cambio si usas un Default solo tienes
que hacer un cambio y se refejara en los 30 campos.

Aqui un fragmento del libro en pantalla:

Crea un objeto denominado predeterminado. Cuando se enlaza a una columna
o tipo de datos definido por el usuario, un valor predeterminado
especifica un valor que debe insertarse en la columna a la que está
enlazada el objeto (o en todas las columnas, en el caso de un tipo de
datos definido por el usuario) cuando no se proporciona explícitamente
un valor durante la inserción. Los valores predeterminados, que son una
característica de compatibilidad con versiones anteriores, realizan
algunas de las mismas funciones que las definiciones predeterminadas
creadas mediante la palabra clave DEFAULT de las instrucciones ALTER o
CREATE TABLE. Las definiciones predeterminadas son el método preferido y
estándar de restringir los datos de columna, debido a que la definición
se almacena con la tabla y se quita automáticamente cuando se quita
ésta. >>>>>>Sin embargo, un valor predeterminado es útil cuando se
utiliza múltiples veces en múltiples columnas.<<<<<<<

De cualquier manera te agradezco tu interes.

___________________________
Ing. Luis Gerardo Carrillo Herrera
GRUPO SIMSA
División Gas
Torreón, Coahuila México
Respuesta Responder a este mensaje
#5 Luis Gerardo
21/09/2004 - 17:36 | Informe spam
Antonio Soto escribió:
Hola Luis,

Podrías indicarnos como realizas las inserciones??
Este código que te pego funciona perfectamente:

use tempdb
go
create table datos (nombre varchar(10),fecha smalldatetime)
CREATE DEFAULT [def_FechaActual] AS GETDATE()
EXEC sp_bindefault '[dbo].[def_FechaActual]', '[dbo].[datos].[Fecha]'
insert into datos values('pepe',DEFAULT)
select * from datos



Hola Antonio, de entrada te comento que soy nuevo en esto y estoy usando
los libros en pantalla, aunque son excelentes todavia me saltan muchas
dudas.

Por otro lado que estoy utilizando MSDE 2000a y como carece de una GUI
utilizo el software MS SQL Manager de EMS Hitech, en este mismo software
al momento de diseñar la tabla, hay una opcion para insertar datos, ahi
es donde al momento de insertar el dato el default me da una fecha
erronea, voy a probar lo que me sugieres, tal vez el problema esta en el
software.

Gracias por tu comentario.
___________________________
Ing. Luis Gerardo Carrillo Herrera
GRUPO SIMSA
División Gas
Torreón, Coahuila México
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida