如何在Sql中插入一些记录?

时间:2012-11-01 14:16:14

标签: sql-server stored-procedures insert record insert-update

我想在sql server中插入一些记录。我尝试查询,但插入所有记录和值重复。

我需要不重复值并插入一些记录。

表格文件

runNo   cDate           cIn         cOut    
00001   2012-10-09 00:00:00.000 2012-10-09 07:21:00.000 2012-10-09 20:34:00.000 
00005   2012-10-09 00:00:00.000 2012-10-09 07:36:00.000 2012-10-09 17:04:00.000 
00006   2012-10-09 00:00:00.000 2012-10-09 07:55:00.000 2012-10-09 20:34:00.000 
00007   2012-10-09 00:00:00.000 2012-10-09 07:50:00.000 2012-10-09 00:00:00.000 
00008   2012-10-09 00:00:00.000 2012-10-09 07:56:00.000 2012-10-09 20:35:00.000 
00009   2012-10-09 00:00:00.000 2012-10-09 07:57:00.000 2012-10-09 20:32:00.000 
00010   2012-10-09 00:00:00.000 2012-10-09 07:58:00.000 2012-10-09 19:03:00.000

此代码存储过程

SELECT 
     em.empNo,
     ISNULL(tf.cDate, '2012-10-09'),
     tf.cIn,tf.cOut
FROM 
     filesTA tf Full Outer join 
     Emp em On tf.runNo = em.empNo AND tf.cDate = '2012-10-09'

来自代码存储过程(在Datagridview显示屏上)

的结果
empNo   cDate           cIn         cOut
00001   2012-10-09 00:00:00.000 2012-10-09 07:21:00.000 2012-10-09 20:34:00.000
00002   2012-10-09 00:00:00.000 NULL                    NULL
00003   2012-10-09 00:00:00.000 NULL                    NULL
00004   2012-10-09 00:00:00.000 NULL                    NULL
00005   2012-10-09 00:00:00.000 2012-10-09 07:36:00.000 2012-10-09 17:04:00.000
00006   2012-10-09 00:00:00.000 2012-10-09 07:55:00.000 2012-10-09 20:34:00.000
00007   2012-10-09 00:00:00.000 2012-10-09 07:50:00.000 2012-10-09 00:00:00.000
00008   2012-10-09 00:00:00.000 2012-10-09 07:56:00.000 2012-10-09 20:35:00.000
00009   2012-10-09 00:00:00.000 2012-10-09 07:57:00.000 2012-10-09 20:32:00.000
00010   2012-10-09 00:00:00.000 2012-10-09 07:58:00.000 2012-10-09 19:03:00.000

代码存储过程的结果。它不是插入到SQL。但是在datagridview上显示。

下一步。我需要插入记录'00002','00003','00003'或cIn和cOut = null 但我尝试插入所有记录和重复值。

此代码新。

    Insert INTO 
    filesTA (runNo,cDate,cIn,cOut)
    VALUES 
   (SELECT 
        em.empNo,
        ISNULL(tf.cDate, '2012-10-09'),
        tf.cIn,tf.cOut
    FROM 
        filesTA tf Full Outer join Emp em 
        On tf.runNo = em.empNo AND tf.cDate = '2012-10-09')

我需要代码存储过程(在Datagridview显示上)

的结果

谢谢你的时间。 :)

1 个答案:

答案 0 :(得分:0)

由于1)full outer join或者您在执行选择时没有使用distinct,因此您可能会收到重复项(您有多行,因此会有多个值) 。 full outer join不是你想要的,我不认为:你想要inner join