Я знаю, что мой заголовок не совсем правильно сформулирован, поэтому позвольте мне уточнить. Я использую SQL Server 2005 Express.
У меня есть таблица, в которой хранится "шаблон", если хотите. Используя автомобиль в качестве примера, поля будут выглядеть примерно так:
TemplateID
Color
Make
Model
Теперь у меня есть другая таблица, которая представляет «экземпляр» шаблона. Он содержит все поля таблицы шаблонов, а также некоторые поля, уникальные для экземпляра:
InstanceID
VIN
SerialNumber
Color
Make
Model
Я пишу хранимую процедуру для вставки новой строки в таблицу «Экземпляр». Эта хранимая процедура будет принимать входные параметры для «VIN» и «SerialNumber», но я хочу, чтобы она скопировала «Color», «Make» и «Model» из соответствующего «Template». Шаблон находится по «TemplateID», который уже известен.
Я ищу совет о том, как написать эту хранимую процедуру. Было бы просто, если бы не тот факт, что эти таблицы содержат более 100 полей (я их не проектировал, но я застрял, используя их). Я хотел бы сделать что-то вроде:
INSERT INTO Instance(VIN, SerialNumber, "EverythingElse")
VALUES (@VIN, @SerialNumber, SELECT * FROM Template WHERE TemplateID = 1)
Другими словами, я хочу предоставить (через параметры) только те поля, которые не хранятся в «Шаблоне», и скопировать все остальное из шаблона. Возможно ли что-нибудь подобное без ручного кодирования для каждого поля?