日期:2014-05-18  浏览次数:20574 次

怎样循环插入在另一个表中更新的数据到另一个表
怎样循环插入在另一个表中更新的数据到另一个表,我想在职工信息表中插入一条信息,然后用触发器在职工打分表中插入于此人有关的多条记录。用循环实现,有没有高人,救救我。

------解决方案--------------------
SQL code

CREATE TABLE 职工信息表
(
    userid    INT,
    username  NVARCHAR(3)
)

CREATE TABLE 职工打分表
(
    id      INT IDENTITY(1, 1),
    userid  INT
)

GO

CREATE TRIGGER tr_insert
ON 职工信息表
FOR  INSERT
AS
    DECLARE @i       INT
    DECLARE @userid  INT
    SET @i = 0
    WHILE (@i < 10)
    BEGIN
        SELECT @userid = userid
        FROM   INSERTED
        
        INSERT INTO 职工打分表
        VALUES
          (
            @userid
          )
        SET @i = @i + 1
    END

------解决方案--------------------
SQL code

CREATE TABLE 职工信息表
(
    userid    INT,
    username  NVARCHAR(3)
)

CREATE TABLE 职工打分表
(
    id      INT IDENTITY(1, 1),
    userid  INT
)

GO

CREATE TRIGGER tr_insert
ON 职工信息表
FOR  INSERT
AS
    DECLARE @i       INT
    DECLARE @userid  INT
    SET @i = 0
    SELECT @userid = userid FROM  INSERTED  --取用户ID
    WHILE (@i < 10)
    BEGIN

        INSERT INTO 职工打分表 VALUES(@userid) --循环插入
        SET @i = @i + 1
    END

------解决方案--------------------
这个没人能救得了你.

在职工表中插入数据,只是插入的职工本身的信息,至于职工打分表里的信息,并非从职工表就可以得到的(如果能得到,还要职工表干嘛!

因此,所谓职工打分表,虽然我不知道它的表结构是什么,它要记录些什么东西,但我想它一定不能通过向职工表插入数据后,就能自动生成的,恐怕楼主还是要另写段向职工打分表中插入信息的程序,而且还要注意所打分的职工,在职工表中要存在.
------解决方案--------------------
我倒是真搞不明白,请说清楚点啦!
如果是用触发器,咋非得加个触发器呢?
加个循环录入,录入什么成绩又没说。
如果是分开的,那触发器是一条一条进的。
为啥会冒个循环呢?
可能我太笨。
想帮你,真“难”。
------解决方案--------------------
探讨
create trigger 打分表的更新
on 职工信息

for Insert
as

declare aa cursor for select Id from 职工信息
declare @i char(10)
open aa
fetch Next From aa into @i
begin

wh……

------解决方案--------------------
探讨
引用:
create trigger 打分表的更新
on 职工信息

for Insert
as

declare aa cursor for select Id from 职工信息
declare @i char(10)
open aa
fetch Next From aa into @i
begin

wh……



SQL……

------解决方案--------------------
探讨
create trigger 打分表的更新
on 职工信息

for Insert
as
declare
@Id char(18),
@Eno char(10),
@Dno char(6),
@Ename char(10),
@WEno char(10),
@Who char(10),
@Grade smallint
declar……