вставка значения в таблицу SQL и использование оператора SELECT - PullRequest
3 голосов
/ 07 апреля 2009

Я пытаюсь вставить значения из одной таблицы в другую с дополнительным обязательным параметром. Например:

INSERT INTO table1(someInt, someOtherInt, name, someBit)    
SELECT someInt, someOtherInt, name FROM table2

someBit не может быть нулевым, и мне нужно установить его в False, но я не совсем уверен, как использовать его в той же инструкции INSERT (Я использую SQL 2005, если это имеет значение)

edit: Ой ... похоже, я выбросил филе миньон львам: -)

Ответы [ 5 ]

14 голосов
/ 07 апреля 2009

Может

INSERT INTO table1(someInt, someOtherInt, name, someBit)    
SELECT someInt, someOtherInt, name, 0
FROM table2
4 голосов
/ 07 апреля 2009
INSERT INTO table1(someInt, someOtherInt, name, someBit)    
SELECT someInt, someOtherInt, name, 0 FROM table2
4 голосов
/ 07 апреля 2009

Возможно

INSERT INTO table1(someInt, someOtherInt, name, someBit)<br> SELECT someInt, someOtherInt, name, 0 FROM table2

3 голосов
/ 07 апреля 2009

Вы можете просто жестко закодировать значение в SELECT следующим образом:

INSERT INTO
     dbo.table1
(
     someInt,
     someOtherInt,
     name,
     someBit
)
SELECT
     someInt,
     someOtherInt,
     name,
     0
FROM
     dbo.table2
2 голосов
/ 07 апреля 2009

Вы также можете определить значение по умолчанию для этого столбца в таблице назначения. Таким образом, вам не придется ссылаться на все это в вашем операторе вставки.

Допустим, ваш SomeBit является активным флагом или статусом в таблице клиентов. Активный 0 = выкл / ложь / нет Активен 1 = вкл / истина / да.

ALTER TABLE [dbo].[Customer] ADD  CONSTRAINT [DF_Customer_Active]  DEFAULT ((1)) FOR [Active]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...