Student
SID SName RXRQ
1 a 20050901我在创建 该表关于INSERT的触发器中使用了 WHERE RXRQ= LIKE @ND%
可是不行,该如何做?RXRQ是入学日期的意思,@ND是入学年度。
都是varchar型的
SID SName RXRQ
1 a 20050901我在创建 该表关于INSERT的触发器中使用了 WHERE RXRQ= LIKE @ND%
可是不行,该如何做?RXRQ是入学日期的意思,@ND是入学年度。
都是varchar型的
create table Student(SID int,SName varchar(10),RXRQ varchar(10))
insert Student
select 1,'a','2005090'declare @str varchar(10)
set @str='2005'select * from Student where RXRQ like @str+'%'
select * from Student where charindex(@str,RXRQ)>0
看来楼主还得加紧学习基本功
或
if exists(select 1 from Student where left(RXRQ,4) = @ND)
改正
WHERE RXRQ LIKE @ND+'%'
好人做到底,帮我看看这个出发器吧CREATE TRIGGER Course_insert
ON Course
AFTER INSERT
AS
DECLARE @CND varchar(4)
DECLARE @CZID varchar(5)
DECLARE @CXXXS varchar(10)
DECLARE @CCID varchar(5)
SELECT @CND=ND, @CZID=ZID, @CXXXS=XXXS, @CCID=CID FROM INSERTED Course
INSERT INTO Score(CID,XH) SELECT @CCID,StuZyB.XH FROM Student, StuZyB, StuXxxsB
WHERE (Student.RXRQ LIKE @CND+'%' ) AND (StuXxxsB.XXXS = @CXXXS) AND (StuZyB.ZID = @CZID)我要求是在Course表中插入了@ND(入学年度)、@ZID(专业号)、@XXXS(学习形式)、@CID(课程号)之后,通过@ND(入学年度)与Student表中的RXRQ(入学日期)、@ZID(专业号)与StuZyB中的ZID、@XXXS(学习形式)与StuXxxsB表中的XXXS得出对应的唯一班级,然后得出对应的所有XH(学号),再把XH和CID插入Score表中;可是在插入值的时候,Score弹出错误说不能插入重复值,我想应该是把同一个学号多次插入进去了,该如何更改触发器呢
FOR INSERT
AS
DECLARE @CND varchar(4)
DECLARE @CZID varchar(5)
DECLARE @CXXXS varchar(10)
DECLARE @CCID varchar(5)
INSERT INTO Score(CID,XH)
SELECT T.CID,StuZyB.XH FROM Student, StuZyB, StuXxxsB,INSERTED T
WHERE (Student.RXRQ LIKE T.ND+'%' ) AND (StuXxxsB.XXXS = T.XXXS) AND (StuZyB.ZID = T.ZID)---不知道是不是这个意思?
XH XM RXRQ
601226 a 20040601
601227 b 20040601
StuZyB
XH ZID
601226 11
601227 11StuXxxsB
XH XXXS
601226 夜大
601227 夜大Course
ND ZID XXXS CID CName
2004 11 夜大 1111 网络Score
CID XH CJ我在Course插入 (2004,11,夜大,1111,网络)的时候,
要求能在Score中插入对应的(1111,601226) (1111,601227)
SELECT @CND=ND, @CZID=ZID, @CXXXS=XXXS, @CCID=CID FROM INSERTED Course --- 这个地方得到的是最后一条纪录的值(如果同时插入多条纪录的时候,所以造成下面的语句再插入的时候,当StuZyB.XH相同的时候会提示你“不能插入重复值”)
INSERT INTO Score(CID,XH) SELECT @CCID,StuZyB.XH FROM Student, StuZyB, StuXxxsB
WHERE (Student.RXRQ LIKE @CND+'%' ) AND (StuXxxsB.XXXS = @CXXXS) AND (StuZyB.ZID = @CZID)
还是弹出同样的错误,说是不能在Score中插入重复键
在Score中我设了(CID,XH)为主键的