相关文章推荐
失恋的充电器  ·  解决 WPF ...·  1 年前    · 
有腹肌的豆腐  ·  angular5 - Angular 5 ...·  1 年前    · 
沉稳的绿豆  ·  macos - error "sh: ...·  1 年前    · 

1报错:分析成功,但执行错误,提示:消息 8197,级别 16,状态 4,过程 trg_readerinfo_del,第 1 行对象 ‘dbo.readerinfo’ 不存在,或对此操作无效。

表readerinfo是存在的,在管理器那看到dbo.readerinfo是存在的
分析:

1是否开头加上 use 数据库名 语句 并且 go语句隔开,否则提示
2如果go隔开后,仍然失败,查看新建查询语句的位置是否有误?方法:select * from 数据表名,如果报错,说明新建查询有问题,重新新建查询语句
3再次尝试发现成功创建触发器!
例子:删除新闻类别时同时删除类别下的所有新闻,新闻下的所有评论

alter TRIGGER trig_CategoryDelete
ON category
instead of DELETE
AS
BEGIN
declare @caid int
select @caid=id from deleted
–删除评论
delete comment where newsID in (select id from news where caid=@caid )
–删除新闻
delete news where caid=@caid
–删除类别
delete category where id=@caid
END
GO

create trigger updateDeleteTime
on user
for update
begin 
 update user set UpdateTime=(getdate()) from user inner join inserted on user.UID=Inserted.UID

上面的例子是在执行更新操作的时候同时更新,一下修改时间。 关键在于Inserted表 触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。 Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。

Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。

1.插入操作(Insert) Inserted表有数据,Deleted表无数据
2.删除操作(Delete) Inserted表无数据,Deleted表有数据
3.更新操作(Update) Inserted表有数据(新数据),Deleted表有数据(旧数据)

应用实例:

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->set ANSI_NULLS ON set QUOTED_IDENTIFIER ON -- ============================================= -- Description: <当是短信充值时修改相信的记录使记录不会重复获取> -- ============================================= ALTER TRIGGER [dbo].[updatestart] ON [dbo].[OrderTelecom] FOR update BEGIN DECLARE @state int; DECLARE @note2 varchar(50) SELECT @state= Inserted.ortState,@note2 =Inserted.ortNote2 from Inserted IF @state=1 AND @note2=1 begin --当发短信猫取走记录时修改状态为成功和取过的状态 update OrderTelecom set OrderTelecom.ortState=2 ,OrderTelecom.ortSmsmessages='短信充值成功' from OrderTelecom inner join Inserted on OrderTelecom.ortId=Inserted.ortId if @state in(2,3,10) and @note2=0 begin update OrderTelecom set ortNote2=1 from OrderTelecom inner join Inserted on OrderTelecom.ortId=Inserted.ortId

触发器里,插入数据或者更新的数据,都被放在inserted这张表里,所以,你只要在触发器里查询这张表,而删除或者被更新的数据都被放在deleted这张表里

decare @ID

select @ID=id from inserted

–上面这句是查询修改后的ID

select @ID=id from deleted

–上面这句是查询修改前的ID

select @ID

我在 Windows 操作系统上,使用解压压缩包的方式安装 MySQL。这是安装的具体方法:点击这里。在执行如下命令: mysqld --install MySQL --defaults-file=[ini配置文件绝对路径] 在执行上面那个命令的时候,输入了错误的配置文件路径。虽然系统可能会返回 success 。并且命令 mysqld –initialize 也可以执行并生成数据文件。但是当我执行 net start mysql 的时候,系统会一直提示服务正在启动。原因是我的配置文件路径错误,导致服务启动的时候出现异常情况。此时MySQL服务无法启动,也无法通过命令行和控制面板停止。MyS Windows系统错误代码    1002 窗口无法用来发送消息。 1003 无法完成此项功能。 1004 标志无效。 1005 卷不包含已识别的文件系统。请确认所有需要的文件系统驱动程序都已经加载,而且卷没有任何损坏。 1006 某文件的卷已在外部改变,因而打开的文件不再有效。 1007 要求的操作无法以全屏幕模式执行。 1008 试图引用并不存在的符号。 1009 配置注册表数据库已损坏。 1 case Acad::eOk:lstrcpy(Glb_AcadErrorInfo,_T("正确"));break;case Acad::eNotImplementedYet:lstrcpy(Glb_AcadErrorInfo,_T("尚未实现"));break;case Acad::eNotApplicable:lstrcpy(Glb_AcadErrorInfo,_T("不合适的"));... 2001 指定的驱动程序无效。2002 窗口样式或类别属性对此操作无效。2003 不支持请求的图元操作。2004 不支持请求的变换操作。2005 不支持请求的剪切操作。2010 指定的颜色管理模块无效。2011 制定的颜色文件配置无效。2012 找不到指定的标识。2013 找不到所需的标识。2014 指定的标识已经存在。2015 指定的颜色文件配置与任何设备都不相关。2016... 0x0000 操作成功完成。 1 0x0001 函数不正确。 2 0x0002 系统找不到指定的文件。 3 0x0003 系统找不到指定的路径。 4 0x0004 系统无法打开文件。 5 0x0005 拒绝访问。 6 0x0006 句柄无效。 7 0x0007 存储控制块被损坏。 8 0x0008 存储空间不足,无法处理此命令。 9 0x0009 存储控制块地址无效。 10 0x000A 环境不正 出现这个问题的原因是数据库是用SQL SERVER 的MMC生成的SQL语句生成的,在网上查了下说是SQL脚本生成的BUG,详见:http://www.0wei.com/viewthread.php?action=printable&tid=3084 没有找出解决方案,我的把重新生成的SQL(有选择的生成,不生成视图)后生成的,但生成数据库后又出现了:没有为文件组 INDEX 指派文件 public SthxnDbContext() : base("SthxnEntities") Database.SetInitializer<SthxnDbContext>(null);//关闭EF主库自动迁移 Microsoft Windows 系统错误代码 0000 操作已成功完成。 0001 错误的函数。 0002 系统找不到指定的文件。 0003 系统找不到指定的路径。 0004 系统无法打开文件。 0005 拒绝访问。 000...