Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于使用现有值的Sql插入_Sql_Sql Server 2008 - Fatal编程技术网

基于使用现有值的Sql插入

基于使用现有值的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)...

表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)...
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