SQL Server2000中触发器怎么用?
2个回答
2011-12-01
展开全部
背景:
如果从表信息存在不能删除主表的信息,当然也可以用关系图来取代
CREATE TABLE [dbo].[tablex] (
[idx] [int] IDENTITY (1, 1) NOT NULL ,
[ProductID] [int] NULL ,
[ProductName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[tabley] (
[idy] [int] IDENTITY (1, 1) NOT NULL ,
[ProductID] [int] NULL ,
[ProductName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
create Trigger triDelete on [dbo].[tablex]
for delete
as
declare @aa varchar(10)
--判断要删除数据是否还在从表中
set @aa= (select count(*) from deleted a ,tabley b where a.ProductID=b.ProductID)
if @aa>0
--不能删除,因为从表中还有数据、
begin
--回滚事务
ROLLBACK
end
如果从表信息存在不能删除主表的信息,当然也可以用关系图来取代
CREATE TABLE [dbo].[tablex] (
[idx] [int] IDENTITY (1, 1) NOT NULL ,
[ProductID] [int] NULL ,
[ProductName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[tabley] (
[idy] [int] IDENTITY (1, 1) NOT NULL ,
[ProductID] [int] NULL ,
[ProductName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
create Trigger triDelete on [dbo].[tablex]
for delete
as
declare @aa varchar(10)
--判断要删除数据是否还在从表中
set @aa= (select count(*) from deleted a ,tabley b where a.ProductID=b.ProductID)
if @aa>0
--不能删除,因为从表中还有数据、
begin
--回滚事务
ROLLBACK
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询