use*_*833 0 t-sql sql-server triggers
有人可以解决这个问题:
CREATE TRIGGER tr_admin_ForInsert
ON admin
FOR INSERT
AS
BEGIN
DECLARE adminID INT
SELECT adminID = adminID from inserted
insert into adminAudit
Values ('New Admin with ID = ' + Cast (ID as NVARCHAR(5)) + ' is added at ' + cast(Getdate() as NVARCHAR (20)))
END
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
消息155,级别15,状态2,过程tr_admin_ForInsert,第7行
'INT'不是可识别的CURSOR选项.
INT 加下划线并说''不是公认的CURSOR选项'SELECT加下划线并说'SELECT'附近的语法不正确.期待CURSOR或ID这是我为admin添加的表格:
USE [zachtravelagency]
CREATE TABLE admin
(
[adminID] INTEGER NOT NULL IDENTITY (1,1) PRIMARY KEY,
[firstname] NVARCHAR(30) NOT NULL,
[surname] NVARCHAR(50) NOT NULL,
[username] NVARCHAR(30) NOT NULL,
[password] NVARCHAR(30) NOT NULL,
);
Run Code Online (Sandbox Code Playgroud)
这是我为adminAudit插入的表:
CREATE table adminAudit
(
[adminAuditID] INTEGER NOT NULL IDENTITY (1,1) PRIMARY KEY,
[AuditData] NVARCHAR(200) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
谢谢.
根本不要使用变量.用途insert . . . select:
BEGIN
insert into adminAudit
select 'New Admin with ID = ' + Cast (adminid as NVARCHAR(5)) + ' is added at ' + cast(Getdate() as NVARCHAR(20))
from inserted;
END
Run Code Online (Sandbox Code Playgroud)
我还建议如下:
convert()这样您就可以控制日期格式.Audit表中使用单独的列来表示您正在执行的id,日期和操作.将所有内容放入字符串中似乎效率低下且难以进行调查.| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |