急求触发器解答
我刚开始用触发器,请向大家请教一个问题:我写了一个触发器如下:
CREATE TRIGGER [forbidToDeleteCompany] ON [dbo].[Company]
FOR DELETE
AS
begin
declare @tableName varchar(255)
declare @fieldName varchar(255)
declare @tcount int
DECLARE tableFieldCursor CURSOR FOR
select t.[name] as tableName,f.[name] as fieldName
from sysobjects as t
inner join syscolumns as f
on t.id = f.id
where t.type='U' and lower(f.[name]) like '%companycode'
OPEN tableFieldCursor
FETCH NEXT FROM tableFieldCursor
INTO @tableName, @fieldName
WHILE @@FETCH_STATUS = 0
BEGIN
exec('select @tcount = count(d.code) from deleted as d inner join '+ @tableName +' as p on d.code=p.' + @fieldName)
if @tcount >0
RAISERROR ('记录在使用中不能删除!', 16, 1)
rollback transaction
goto quit
FETCH NEXT FROM tableFieldCursor
INTO @tableName, @fieldName
END
quit:
CLOSE tableFieldCursor
DEALLOCATE tableFieldCursor
end
但是在删除记录时,触发器出错,提示“必须声明变量@tcount”,经查是exec语句出错,但不知道该如何写才对,请大家不吝赐教。
CREATE TRIGGER [forbidToDeleteCompany] ON [dbo].[Company]
FOR DELETE
AS
begin
declare @tableName varchar(255)
declare @fieldName varchar(255)
declare @tcount int
DECLARE tableFieldCursor CURSOR FOR
select t.[name] as tableName,f.[name] as fieldName
from sysobjects as t
inner join syscolumns as f
on t.id = f.id
where t.type='U' and lower(f.[name]) like '%companycode'
OPEN tableFieldCursor
FETCH NEXT FROM tableFieldCursor
INTO @tableName, @fieldName
WHILE @@FETCH_STATUS = 0
BEGIN
exec('select @tcount = count(d.code) from deleted as d inner join '+ @tableName +' as p on d.code=p.' + @fieldName)
if @tcount >0
RAISERROR ('记录在使用中不能删除!', 16, 1)
rollback transaction
goto quit
FETCH NEXT FROM tableFieldCursor
INTO @tableName, @fieldName
END
quit:
CLOSE tableFieldCursor
DEALLOCATE tableFieldCursor
end
但是在删除记录时,触发器出错,提示“必须声明变量@tcount”,经查是exec语句出错,但不知道该如何写才对,请大家不吝赐教。
...全文
相关推荐
数字电路习题及解答(触发器及时序逻辑电路)
数字电路习题及解答触发器及 时序逻辑电路
电子技术习题解答触发器和时序逻辑电路及其实际应用习题解答.pdf
电子技术习题解答触发器和时序逻辑电路及其实际应用习题解答.pdf电子技术习题解答触发器和时序逻辑电路及其实际应用习题解答.pdf电子技术习题解答触发器和时序逻辑电路及其实际应用习题解答.pdf电子技术习题解答触发器和时序逻辑电路及其实际应用习题解答.pdf电子技术习题解答触发器和时序逻辑电路及其实际应用习题解答.pdf电子技术习题解答触发器和时序逻辑电路及其实际应用习题解答.pdf
数字电路习题及解答(触发器及时序逻辑电路).pdf
数字电路习题及解答(触发器及时序逻辑电路).pdf
三集成门电路与触发器习题解答PPT教案.pptx
三集成门电路与触发器习题解答PPT教案.pptx
oracle练习题关于触发器的作业
一点关于oracle的练习题!较难~慢慢看吧!~受打击了别管我啊!!!!


