将一个表的Id复制到另一个表

时间:2016-05-09 00:48:04

标签: sql asp.net

我想将表SourceTable的主键ID用于DestTable。 SourceTable自动生成唯一ID,我必须将此ID插入DestTable。 System.DateTime.Now(我正在使用Asp.net C#)值是唯一可以引用此Id的唯一数据。以下是我的询问:

string @Date = ("Select Id from SourceTable Where Date=' " + System.DateTime.Now + " '");
string insertId = "insert into DestTable (Id) SELECT Id FROM SourceTable WHERE Date= ' " + Date + " ' ";
SqlCommand comId = new SqlCommand(insertId, conn);

执行此命令时,我的DestTable的Id列为空。我的解决方案是什么?

1 个答案:

答案 0 :(得分:2)

为什么要为此使用两个查询?只需使用:

insert into DestTable (d)
    select id
    from SourceTable
    where date = CURRENT_DATE;

您的代码可能没有返回答案,因为now()有一个时间组件,并且会阻止日期匹配常量。

注意:CURRENT_DATE取决于数据库。这可能是trunc(sysdate)(Oracle),cast(getdate() as date)(SQL)或其他。