sql触发器提示未知对象的问题

我尝试在sql中写一个触发器,要求是在我insert之前,把原表做备份,写的代码如下
create trigger cfq on ss.dbo.cj
instead of insert
as
begin
declare @id int
declare @math int
declare @phyc int
declare @eng int
select @id = id,@math = math,@phyc = phyc,@eng = eng from ss.dbo.cj
create ss.cj_bak as select * from ss.dbo.cj
end
go

现在提示我的备份表ss.cj_bak 消息 343,级别 15,状态 1,过程 cfq,第 10 行
CREATE、DROP 或 ALTER 语句中使用了未知的对象类型 'ss'。

请问是什么问题

1个回答

create ss.cj_bak as select * from ss.dbo.cj
这一行出错,尝试把第一个 ss. 去掉

而且 逻辑上是有错误的
create ss.cj_bak as select * from ss.dbo.cj

当你第二次insert,触发触发器的话,第一次已经执行了create cj.bak,即cj.bak已经存在,此时第二次create cj.bak,会出现错误
解决方案:在create cj.bak 之前,先 delete if exist cj.bak

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问