Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/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
C# 需要有关复制行的SQL帮助吗_C#_Sql_Sql Server_Copy - Fatal编程技术网

C# 需要有关复制行的SQL帮助吗

C# 需要有关复制行的SQL帮助吗,c#,sql,sql-server,copy,C#,Sql,Sql Server,Copy,我有一个表,它有很多列 有一个主键是作为int数据类型的ID,没有外键。此PK设置了标识规范,增量和种子都设置为1,不管这意味着什么。对于不用于复制,它被设置为“是”。还有另外两行很重要,数据的年份和参考号,我将使用这两行专门选择要复制的行 是否有任何方法可以使用SQL或SQL与C的组合,通过引用号复制一组特定的行,并自行为每一行分配一个唯一的主键ID?每次复制的行数可能不同,因此需要灵活。正如在系统中一样,不需要更多的麻烦就可以选择ID,或者让它可能获得最大ID,并为复制的每一行增加一个ID。

我有一个表,它有很多列

有一个主键是作为int数据类型的ID,没有外键。此PK设置了标识规范,增量和种子都设置为1,不管这意味着什么。对于不用于复制,它被设置为“是”。还有另外两行很重要,数据的年份和参考号,我将使用这两行专门选择要复制的行

是否有任何方法可以使用SQL或SQL与C的组合,通过引用号复制一组特定的行,并自行为每一行分配一个唯一的主键ID?每次复制的行数可能不同,因此需要灵活。正如在系统中一样,不需要更多的麻烦就可以选择ID,或者让它可能获得最大ID,并为复制的每一行增加一个ID。我还将在该列中添加一个新年,但与主要问题相比,这很容易,主要问题是通过SQL语句为此类列为每一行单独设置主键ID


请帮忙!我不是一个完全的SQL新手,但我仍在学习,以前从未遇到过特定的不用于复制等问题的此类问题。

由于主键是标识列,您可以选择所需的行(不选择标识列除外),然后将其重新插入到同一个表中:

INSERT INTO table1 (col1, col2, col3)
SELECT (col1, col2, col3) FROM table1
WHERE ....

如果不想逐个添加所有列,而只想排除主标识列,则可以使用以下命令

假设您的表名为entity

-- Copy row without Id
SELECT * INTO TempTable FROM entity WHERE entity_id = 1; // AND OTHER CONDITIONS
ALTER TABLE TempTable DROP COLUMN entity_id;
INSERT INTO entity SELECT * FROM TempTable;
DROP TABLE TempTable;

我经常使用它来复制具有许多列的表中的行。

Seed=1表示从1开始,increment表示每个值都应该增加1,但这不起作用,因为我已经尝试过了,我将该表的Identity_insert设置为on…然后编码…然后关闭,我得到了这样一个错误:当Identity_insert设置为on或复制用户正在插入非复制标识列时,必须为表“table”中的Identity列指定显式值。Welp我是个白痴,好了…我真的读到了错误…有效…我留下了评论,这样其他人就可以嘲笑我了。