Как скопировать строку в таблицу при определении PK новой строки? - PullRequest
1 голос
/ 22 апреля 2011

Я хочу скопировать или продублировать строку в таблице (tblSpills) при определении значений столбца PK (2) (tblSpills.Year, tblSpills.Complaint).

У меня уже есть хранимая процедура, которая вставляет новую строку с пользовательскими значениями PK, а все остальные столбцы (около 30) пустые.До сих пор я дошел до выполнения существующей хранимой процедуры для создания новой строки и получил новые значения PK как переменные для новой хранимой процедуры Duplicate, но я не могу понять, как скопировать оставшиеся столбцы из одной строки внедавно созданная строка в той же таблице.

Спасибо за любую помощь, которую вы можете предоставить.

1 Ответ

0 голосов
/ 22 апреля 2011

Вы ничего не говорите нам о том, какую систему / базу данных вы используете, - но просто предполагаете, что это SQL Server, вы можете сделать что-то вроде этого:

INSERT INTO dbo.tblSpills(Year, Complaint, list all other columns here)
   SELECT
      @YearValue, @ComplaintValue, 
      (list of all other columns here)
   FROM
      dbo.tblSpills
   WHERE
      (some condition here, e.g. ID = 42 or something)

По сути, вы вставляете список столбцов в таблицу tblSpills на основе ваших новых значений для Year и Complaint, и вы берете все другие значения столбцов из этой же таблицы из существующей строки (на основе что ГДЕ условие вы должны определить)

Для «других столбцов»: вам нужно перечислить только те столбцы, для которых требуется значение или для которых вы хотите установить конкретное значение. Те столбцы, для которых уже определено разумное ограничение DEFAULT, указывать не нужно - они автоматически получат определенное значение по умолчанию при вставке новой строки.

...