基于使用现有值的Sql插入
表A(ID(标识)、col2、col3、col4) 我想为表a中的每个ID添加一个新条目,给定col4='(为类a中的每个人插入一条新记录,将他们放在类B中)。正在录制的新唱片 inserted在Col2中的值必须与所添加的值相同,并且不能硬编码到各个条目中。 例如:基于使用现有值的Sql插入,sql,sql-server-2008,Sql,Sql Server 2008,表A(ID(标识)、col2、col3、col4) 我想为表a中的每个ID添加一个新条目,给定col4='(为类a中的每个人插入一条新记录,将他们放在类B中)。正在录制的新唱片 inserted在Col2中的值必须与所添加的值相同,并且不能硬编码到各个条目中。 例如: 1)1,'Michael', 'Lamboux', 'class A'(initial record) 2)2,'Sarah', 'Johanson', 'class A' (initial record) 3)... 4)...
1)1,'Michael', 'Lamboux', 'class A'(initial record)
2)2,'Sarah', 'Johanson', 'class A' (initial record)
3)...
4)...
5)...
6)1024,'Michael','Lamboux','class B'(new value)
7)1025, 'Sarah', Johanson', 'class B'(new value)
由于以前从未在SQL中这样做过,所以我对如何做感到困惑。任何帮助都将不胜感激 假设第一列是一个标识字段:
插入表格A(col2,col3,col4)从表格A中选择col2,col3,‘B类’,其中col4=‘A类’
INSERT INTO [Table A] (col2, col3, col4)
SELECT col2, col3, 'class B' FROM [Table A]
WHERE col4='class A';
如果只是为每条记录添加新行
编辑
根据你的评论
INSERT INTO tblEWF2 (E_ID,Media_ID, Min_Duration, Norm_Duration, CustDuration, Sec_ID, Task_ID, Schedule_Date, Active)
SELECT E_ID, 4845, Min_Duration, 0, CustDuration, Sec_ID, Task_ID, Schedule_Date, 1
FROM tblEWF2
编辑2
从您上次的评论中;)
这也应该被重新表述为add
col3
:)正在插入的新记录必须在Col2、col3中具有与正在添加的记录相同的值,并且不能硬编码到各个entries如果我在select语句周围加上括号Sql server给我一个错误“语法不正确”也许我做错了什么,但每次我编辑我的查询时,它都会在每个字段中插入我想要输入的值。你能澄清一下问题吗,我不理解你的评论。这些值看起来像这个ID,‘Michael’、‘Lamboux’、‘Class B’ID、‘Michael’、‘Lamboux’、‘Class B’ID、‘Michael’、‘Lamboux’、‘Class B’ID、‘Michael’、‘Lamboux’,“B类”它从不向Sarah和其他记录添加任何额外的内容,只为第一条记录复制相同的新条目。选择部分的结果如何?(没有插入行)?你得到了不同的结果?也许我做错了什么,但每次我编辑我的查询时,它都会将我想要输入的值插入到每个查询中field@MasterP我以为那就是你想要的。它的作用和您想要的有什么区别?这些值看起来像这个ID,'Michael','Lamboux','Class B'ID,'Michael','Lamboux','Class B'ID,'Michael','Lamboux','Class B'它从不向Sarah和其他记录添加任何额外内容,只会为第一条记录复制相同的新条目。因此,如果您尝试选择col2,col3,表A中的“B类”,其中col4=“A类”
前面没有插入的行,您如何看到?与以前相同的结果,除了插入的所有值替换了以前记录中的值,而不是向数据库中添加一个全新的记录
INSERT INTO EWF2 (E_ID,Media_ID, Min_Duration, Norm_Duration, CustDuration, Sec_ID, Task_ID, Schedule_Date, Active)
SELECT E_ID,'4845',NULL, '0',NULL,'1','73',NULL,'1'
FROM EWF2
GROUP BY E_ID