USE Store
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'Contract_Detail' AND type = 'TR')
DROP TRIGGER Contract_Detail
GO
CREATE TRIGGER Contract_Detail
ON ContractInfo
FOR INSERT
ASDECLARE @Cid char(10),
@Pid char(10),
@Clid char(10),
@Cprice money,
@Csum int,
@Cfinish datetime,
@Cstate varchar(6)
BEGIN
SELECT @Cid=[ContractId],@Pid=PsT.ProductId,@Clid=[ClientId],@Csum=[ContractSum], @Cstate=[ContractState],@Cfinish=[ContractFinish] FROM inserted as IsT ,ProductInfo as PsT
where IsT.ProductId=PsT.ProductId
if(@Cstate='完成')
INSERT INTO [Store].[dbo].[DetailInfo]([ContractId], [ProductId], [ClientId], [ProductPrice], [ProductSum], [ContractFinish])
VALUES(@Cid,@Pid,@Clid,@Cprice,@Csum,@Cfinish)
end
//上面是不能插入表[DetailInfo]内的代码,奇怪的是若把where IsT.ProductId=PsT.ProductId 去掉则可以
//为什么,希望指点,头大了,谢谢~~~~~~~~
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'Contract_Detail' AND type = 'TR')
DROP TRIGGER Contract_Detail
GO
CREATE TRIGGER Contract_Detail
ON ContractInfo
FOR INSERT
ASDECLARE @Cid char(10),
@Pid char(10),
@Clid char(10),
@Cprice money,
@Csum int,
@Cfinish datetime,
@Cstate varchar(6)
BEGIN
SELECT @Cid=[ContractId],@Pid=PsT.ProductId,@Clid=[ClientId],@Csum=[ContractSum], @Cstate=[ContractState],@Cfinish=[ContractFinish] FROM inserted as IsT ,ProductInfo as PsT
where IsT.ProductId=PsT.ProductId
if(@Cstate='完成')
INSERT INTO [Store].[dbo].[DetailInfo]([ContractId], [ProductId], [ClientId], [ProductPrice], [ProductSum], [ContractFinish])
VALUES(@Cid,@Pid,@Clid,@Cprice,@Csum,@Cfinish)
end
//上面是不能插入表[DetailInfo]内的代码,奇怪的是若把where IsT.ProductId=PsT.ProductId 去掉则可以
//为什么,希望指点,头大了,谢谢~~~~~~~~
解决方案 »
- 求MSSQL中标识列断号整理方法
- SQL SERVER2005导入备份文件生成数据库文件后,数据库原来的用户名和密码能否被导入?
- 小计及合计sql的问题?
- 這個SQL語句是什麼意思呢?
- 表名为变量的问题!急呀
- 用存储过程插入数据后获取某字段值的问题
- 有什么软件可以对触发器进行版本控制,除了SqlSourceSafe
- 我想做一个INSERT INTO VALUES的语句,但是,其中一个字段来自另外一个数据集,请看:
- 在一个表中,怎样取出随机的几条记录?
- 哪位大神帮我看看——职工号前6位参照仓库表的仓库号,后2位为数字字符的sql语句
- 用SQL语句可以控制随机数出现概率!
- 求助批处理语句的用法———————————在线等
--------这一段列名指定表别名
ON ContractInfo
FOR INSERT
AS DECLARE @Cid char(10),
@Pid char(10),
@Clid char(10),
@Cprice money,
@Csum int,
@Cfinish datetime,
@Cstate varchar(6)
BEGIN INSERT INTO [Store].[dbo].[DetailInfo]([ContractId], [ProductId], [ClientId], [ProductPrice], [ProductSum], [ContractFinish])
SELECT @Cid=[ContractId],@Pid=PsT.ProductId,@Clid=[ClientId],@Csum=[ContractSum], @Cstate=[ContractState],@Cfinish=[ContractFinish]
FROM inserted
where [ContractState] = '完成'
end