2011-01-21 4 views
3

У меня есть таблица с кучей столбцов.Нужна помощь SQL с копированием строк

Существует один первичный ключ, который является идентификатором типа int и не имеет внешних ключей. Этот PK задается с помощью спецификации удостоверения с приращением и семенем, установленным в 1, что это означает. Для параметра «Нет для репликации» установлено значение «Да». Есть две другие строки, которые важны, год для данных и ссылочный номер, оба из которых я буду использовать, чтобы специально выбрать, какие строки нужно копировать.

Есть ли способ использовать SQL или комбинацию SQL и C# для копирования определенного набора строк по ссылочному номеру и присваивать каждой строке уникальный идентификатор первичного ключа самостоятельно? Количество строк, которые будут скопированы, может быть разным каждый раз, поэтому оно должно быть гибким. Как и в системе, вы выбираете идентификатор без каких-либо проблем или можете получить максимальный идентификатор и увеличивать его на единицу для каждой скопированной строки или любого другого. Я также добавлю новый год в столбец, но это достаточно просто по сравнению с основной проблемой, заключающейся в том, что он сам установил идентификаторы первичного ключа для каждой строки через инструкцию SQL для этого типа столбца ...

Please Помогите! Я не полный новичок SQL, но я все еще учился и никогда не сталкивался с проблемой такого типа с конкретными проблемами Not For Replication и так далее.

+0

Seed = 1 означает, что начинается с 1 и приращение означает, что каждое значение должно быть увеличено на 1 – JeffO

ответ

2

Поскольку ваш первичный ключ является столбцом идентификаторов вы можете выбрать строки, которые вы хотите (за исключением не выбрать столбец идентификаторов) и вставьте их в одну таблицу:

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

Не работает, поскольку я уже пробовал это, я установил Identity_insert для этой таблицы ... затем код ... затем выключился, и я получу эту ошибку, используя это: Явное значение должен быть указан для столбца с идентификатором в таблице «table», либо когда для параметра IDENTITY_INSERT установлено значение ON или когда пользователь репликации вставлен в столбец «NOT FOR REPLICATION». –

+0

Welp Я идиот, там мы идем ... Я действительно читаю ошибку ... работает ... Я оставляю этот комментарий, чтобы другие могли смеяться надо мной. –

Смежные вопросы