2009-04-07 66 views
3

我试图将一个表中的值插入另一个表中,并带有所需的附加参数。例如:将值插入到SQL表中并使用SELECT语句

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

someBit不允许为空,我需要将其设置为False,但我不太知道如何在相同的INSERT语句中使用它。 (即时通讯使用SQL 2005,如果它的事项)

编辑:哎哟......貌似我抛出了菲力牛排到狮子:-)

回答

14

也许

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

hehehe :)简直太简单了,对不对? :) – 2009-04-07 15:37:13

+0

是啊,有时我们自己卡住了,它可能会发生在我们任何人身上 – 2009-04-07 15:37:43

4

也许

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

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

你可以硬编码像这样在选择值:

INSERT INTO 
    dbo.table1 
(
    someInt, 
    someOtherInt, 
    name, 
    someBit 
) 
SELECT 
    someInt, 
    someOtherInt, 
    name, 
    0 
FROM 
    dbo.table2 
2

你也可以定义为在目标表列的默认值。这样你就不必在插入语句中引用它。

假设您的SomeBit是客户表上的活动标志或状态。 有效0 =关/假/无 有效1 =开/真/是。

ALTER TABLE [dbo].[Customer] ADD CONSTRAINT [DF_Customer_Active] DEFAULT ((1)) FOR [Active] 
相关问题