急!!!如何对中文名数据库创建触发器!!!

swimmer2000 2003-12-23 05:16:56
create trigger deltrigger on 采购部门
For Delete
AS
update 采购部门 set id=id-(select count(*) from deleted)
where id>=(select top 1 id from deleted)
出现如下错误:
服务器: 消息 208,级别 16,状态 4,过程 deltrigger,行 1
对象名 '采购部门' 无效。
但是我用英文名就没问题,请各位解决,马上给分
...全文
66 36 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
up
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
请各位回帖时注意,zjcxc(邹建)已经说出了问题所在,我的表是通过别的表改名后变成的,不知该如何解决
j9988 2003-12-24
  • 打赏
  • 举报
回复
加上[]还不行,
你看看名称可能含有其它字符.
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
我的表是通过别的表改名后变成的,不知该如何解决,谢谢
Fanks 2003-12-24
  • 打赏
  • 举报
回复
我在sql2000下试了,正确,你用什么版本?
zjcxc 元老 2003-12-24
  • 打赏
  • 举报
回复
--从你的情况来看:

select * from sysobjects where name=N'采购部门'
只出现了一个表,这个表只有字段,没有值


证明你没有创建采购部门这个表.触发器必须依赖表的存在.
所以你应该先创建[采购部门]这个表
zjcxc 元老 2003-12-24
  • 打赏
  • 举报
回复
--在查询分析器中执行下面语句的结果是什么?

if exists(select 1 from sysobjects where name='采购部门' and objectproperty(id,'IsUserTable')=1)
begin
exec('
create trigger deltrigger on [采购部门]
For Delete
AS
update [采购部门] set id=id-(select count(*) from deleted)
where id>=(select top 1 id from deleted)
')
print '成功'
end
else
print '没有 [采购部门] 这个表'
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
up
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
已经搞定了,我自己犯了个基本的错误,谢谢大家,结帖
zjcxc 元老 2003-12-24
  • 打赏
  • 举报
回复
那真没理由了.

企业管理器--右键你的表--所有任务--管理触发器
在出现的窗口中有什么内容
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
数据库中的数据都还在
zjcxc 元老 2003-12-24
  • 打赏
  • 举报
回复
那你的数据库中还能找到采购部门这个表吗?
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
那应该怎么做?
sdhdy 2003-12-24
  • 打赏
  • 举报
回复
我感觉你改oldname.mdf,oldname_log.ldf为newname.mdf,newname_log.ldf,不可取,因此可能导致了一系列问题
sdhdy 2003-12-24
  • 打赏
  • 举报
回复
我建议你先把原来的数据库备份,然后以不同的名字再恢复到服务器上,用新恢复的数据库,这样应该就可以了!
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
原来的trigger用drop trigger删除
1.用exec sp_renamedb 'oldname','newname'改名
2.企业管理器--数据库--右键--分离数据库
3.改oldname.mdf,oldname_log.ldf为newname.mdf,newname_log.ldf
4.企业管理器--数据库--右键--附加数据库

zjcxc 元老 2003-12-24
  • 打赏
  • 举报
回复
将你做过的所有步骤详细说出来.
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
up
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
不可能没有权限,因为我用的是超级用户,就是因为改名称引起的
swimmer2000 2003-12-24
  • 打赏
  • 举报
回复
问题和前面一样:
服务器: 消息 208,级别 16,状态 4,过程 deltri,行 2
对象名 '采购部门' 无效。
加载更多回复(16)

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧