为什么此触发器不起作用?我尝试创建从datetime插入单个日期的触发器。如何创建触发器以将日期时间拆分为日期
例子是这样的:
当我插入日期时间,触发将插入日期,月份,年份,DAYNAME,年龄在另一列。
日期时间,日期月份,年份,日期,年龄在同一个表中。
╔══════════════════════════════╦══════╦═══════╦══════╦═════════╦══════════╗
║ DateTime ║ DATE ║ MONTH ║ YEAR ║ DAYNAME ║ Age ║
╠══════════════════════════════╬══════╬═══════╬══════╬═════════╬══════════╣
║ April, 06 1982 00:00:00+0000 ║ 4 ║ 6 ║ 1982 ║ Friday ║ 31 ║
╚══════════════════════════════╩══════╩═══════╩══════╩═════════╩══════════╝
CREATE TRIGGER tgl
ON penduduk
FOR INSERT
AS
DECLARE
@myDate CHAR(11)
SELECT @myDate=tgl_lahir FROM inserted
INSERT INTO penduduk(tgl) VALUES (datename(day,@myDate))
当我尝试上面的代码我得到的消息
消息2714,级别16,状态2,过程TGL,8号线
已经有一个名为 'TGL' 的对象在数据库中。
我应该在创建触发器之前创建列日期,月份年份,日期名称和年龄?
** **如果是有意义的分解像这样的日期,使用[计算列](http://msdn.microsoft.com/zh-CN/library/ms191250(v = sql.105).aspx)而不是使用触发器似乎更明智。 – 2013-05-09 14:33:42
与此同时,您的触发器无论如何都会被中断,因为它假定“插入”中只有一行。这通常不正确。 'inserted'可以包含0,1行或多行。 – 2013-05-09 14:34:59
我只想尝试。那。我不能吗? – oebanez 2013-05-09 14:44:40