爲什麼此觸發器不起作用?我嘗試創建從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