【问题标题】:How to insert some record in Sql?如何在Sql中插入一些记录?
【发布时间】:2012-10-22 03:38:34
【问题描述】:

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

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

表格文件TA

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 显示上)

感谢您的宝贵时间。 :)

【问题讨论】:

  • 为了帮助那些想帮助你的人,你可以准备sqlfiddle.com测试用例,然后发布在你的答案中。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多