Nos tiene defecto en CreatedDate y no hacen cumplir con disparadores
Hay momentos en que queremos establecer explícitamente la fecha - por ejemplo, si importamos datos de alguna otra fuente.
Hay un riesgo de que Bug aplicación podría meterse con el CreateDate, o un DBA contrariedad para el caso (que no tenemos no los administradores de bases de conexión directa a nuestra DB)
supongo que se podría establecer Columna permisos de nivel en CreateDate.
Un medio camino puede ser que un INSERT TRIGGER cree una fila en una tabla 1: 1, de modo que esa columna quede fuera de la tabla principal. La segunda tabla podría tener permisos SELECT, donde la tabla principal tiene permisos de ACTUALIZACIÓN, y por lo tanto no necesita un activador de ACTUALIZACIÓN para evitar cambios en CreateDate, lo que eliminaría algo de "peso" al actualizar las filas normalmente.
supongo que coul tiene un UPDATE/DELETE gatillo de la segunda tabla para evitar el cambio (que nunca sería ejecutado en circunstancias normales, por lo que "ligero")
poco de dolor para tener la mesa extra, aunque ... podría tener una tabla para todos los CreateDates - TableName, PK, CreateDate.Sin embargo, la mayoría de los arquitectos de bases de datos odiarán eso ...
Tenga en cuenta que los usuarios pueden omitir esto ya que el valor predeterminado no se tiene en cuenta cuando inserta un valor real. Y también puede ser actualizado por los usuarios también. Probablemente sea lo suficientemente bueno si puedes controlar qué SQL se ejecuta (y no puedes :-) pero no es seguro. – paxdiablo
Eso es realmente una buena cosa, porque si un usuario tiene una fecha específica que necesita poner allí, probablemente debería permitirse a menos que tenga reglas que rijan lo contrario. – James
Respetuosamente no estoy de acuerdo, @James. ¿No has oído hablar de Sarbanes-Oxley? :-) Si tiene una columna DateCreated, debe establecerse en la fecha en que se creó la fila. Si desea una columna modificable por el usuario, debe llamarse DateCreatedForPurposesOfFraud o algo similar. – paxdiablo