| |||
tipo de campo timestamp Hola a todos, soy nuevo aquí y "semi-nuevo" en el sql, actualmente estoy trabajando en un trigger en el cual quiero que cuando doy de alta en una tabla swe dé automáticamente de alta en otra, pero en la tabla a la que dirijo el desencadenador tiene un campo de tipo timestamp, cuando doy a la opción de validar se visualiza el mensaje de "campos completados correctamente" pero cuando escojo la opción de ejecutar "No se puede insertar un valor explícito en una columna de marca de hora". ¿Esto quiere decir que cuando desde mi aplicación dé de alta un cliente no se va ejecutar correctamente dicho disparador? ¿Habría alguna forma de solucionarlo? Gracias y saludos. |
| |||
Re: tipo de campo timestamp Hola, bueno trataré de ser más explícito, la verdad es que tengo 3 tablas Customer, Cldireccion, Cliente, las dos últimas pertenecientes a una base de datos distinta a la primera Customer tiene el campo tipo timestamp, además de otros nombre, direccion, etc y el desencadenador quiero ejcutarlo desde la base de datos de la tabla clientes: USE BaseDatos GO IF (SELECT Count(*) FROM dbo.Customer, inserted WHERE inserted.cliente = dbo.Customer.no_) <= 0 BEGIN CREATE TRIGGER nom_trigg ON dbo.Clientes FOR INSERT, UPDATE AS IF dbo.Customer INSERT INTO (campo_Timestamp, no_, name,cif, ...) SELECT 0, inserted.numero, inserted.nomb, inserted.ncif, ... FROM inserted END ELSE BEGIN UPDATE dbo.Customer SET campo_Timestamp = 0, name= (SELECT nomb FROM inserted), cif = (SELECT ncif FROM inserted), ..... WHERE no_ = (SELECT numero FROM inserted) END Gracias y saludos |
| ||||
Re: tipo de campo timestamp Lo dicho, no puedes hacer mencion del campo TIMESTAMP en tu INSERT, esto es incorrecto INSERT INTO (campo_Timestamp Ya que el TIMESTAMP, se comporta exactamente como un IDENTITY. |
| ||||
Re: tipo de campo timestamp Perfecto, como te comente un TIMESTAMP se comparta de la misma forma que un IDENTITY, solo puedes tener uno por tabla y no deben ser mencionados en la lista de los campos del INSERT. |