Sql server 我需要批量插入行,如1000';s在一列中使用具有不同值的触发器
这是扳机Sql server 我需要批量插入行,如1000';s在一列中使用具有不同值的触发器,sql-server,tsql,Sql Server,Tsql,这是扳机 CREATE TRIGGER [dbo].[Teacher] ON [dbo].[Teacher] After INSERT AS Declare @fid int, @PR NVARCHAR(MAX),@Mycounter as INT Select top 1 @fid = eid from human where TypeID = 2 order by NewID() Select top 1 @PR = Pid from [dbo].[Program] Where De
CREATE TRIGGER [dbo].[Teacher]
ON [dbo].[Teacher]
After INSERT
AS
Declare @fid int, @PR NVARCHAR(MAX),@Mycounter as INT
Select top 1 @fid = eid from human where TypeID = 2
order by NewID()
Select top 1 @PR = Pid from [dbo].[Program] Where Depid = 1
order by NewID()
Set @Mycounter =1
While @Mycounter <5
BEGIN
Insert Into HeadofDep(SessionID,fid,pid,name,createddate)
Select SessionID, @fid,@PR,NULL,null from INSERTED
Where eid in (Select eid from human where TypeID = 3)
set @MyCounter = @MyCounter + 1;
END
创建触发器[dbo].[Teacher]
关于[dbo].[Teacher]
插入后
作为
声明@fid int、@PR NVARCHAR(MAX)、@Mycounter为int
从人类中选择top 1@fid=eid,其中TypeID=2
NewID()命令
从[dbo].[Program]中选择top 1@PR=Pid,其中Depid=1
NewID()命令
设置@Mycounter=1
而@Mycounter只需增加SessionID
,然后将其他内容放入循环中:
Declare @fid int, @PR NVARCHAR(MAX),@Mycounter as INT
Set @Mycounter =1
While @Mycounter <5
BEGIN
Select top 1 @fid = eid from human where TypeID = 2
order by NewID()
Select top 1 @PR = Pid from [dbo].[Program] Where Depid = 1
order by NewID()
Insert Into HeadofDep(SessionID,fid,pid,name,createddate)
Select SessionID, @fid,@PR,NULL,null from INSERTED
Where eid in (Select eid from human where TypeID = 3)
set @MyCounter = @MyCounter + 1;
END
只需增加SessionID
,然后将其他内容放入循环中:
Declare @fid int, @PR NVARCHAR(MAX),@Mycounter as INT
Set @Mycounter =1
While @Mycounter <5
BEGIN
Select top 1 @fid = eid from human where TypeID = 2
order by NewID()
Select top 1 @PR = Pid from [dbo].[Program] Where Depid = 1
order by NewID()
Insert Into HeadofDep(SessionID,fid,pid,name,createddate)
Select SessionID, @fid,@PR,NULL,null from INSERTED
Where eid in (Select eid from human where TypeID = 3)
set @MyCounter = @MyCounter + 1;
END
这个触发器似乎有很大的缺陷。为什么要将一个完全不同的表中的值设置为变量,为什么是随机值?@larnu哪个随机值?这些随机值,@Amna:Select top 1@fid=eid from human,其中TypeID=2 order by NewID()
&Select top 1@PR=Pid from[dbo]。[Program]其中Depid=1 order by NewID())@larnu For@fid
:这是因为在我的系统中,我们定义了不同的类人组,如教师、司机、女佣、代理等,所以当在教师中插入任何行时,我希望从类型id 2插入,即初级教师组(包括助理教师、讲师等)对于@PR
而言,教师被分配到depid 1
中的不同程序,因此从depid 1
中选择任意一个随机程序。该触发器似乎存在很大缺陷。为什么要将一个完全不同的表中的值设置为变量,为什么是随机值?@larnu哪个随机值?这些随机值,@Amna:Select top 1@fid=eid from human,其中TypeID=2 order by NewID()
&Select top 1@PR=Pid from[dbo]。[Program]其中Depid=1 order by NewID())@larnu For@fid
:这是因为在我的系统中,我们定义了不同的类人组,如教师、司机、女佣、代理等,所以当在教师中插入任何行时,我希望从类型id 2插入,即初级教师组(包括助理教师、讲师等)对于@PR
,教师被分配到部门id 1
的不同课程,因此从部门id 1
中选择任意一个随机课程。