将值插入SQL表并使用SELECT语句

时间:2009-04-07 15:35:04

标签: sql sql-server

我正在尝试将一个表中的值插入另一个表中,并使用所需的附加参数。例如:

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

someBit不允许为null,我需要将其设置为False,但我不确定如何在同一个INSERT语句中使用它。 (我使用SQL 2005,如果重要的话)

编辑:哎哟...看起来我把菲力牛排扔给了狮子: - )

5 个答案:

答案 0 :(得分:14)

也许

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

答案 1 :(得分:4)

也许

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

您可以像这样硬编码SELECT中的值:

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

答案 4 :(得分:2)

您还可以在目标表上为该列定义默认值。这样就不必在insert语句中引用它了。

让我们说SomeBit是客户表上的Active标志或状态。 有效0 =关/假/否 有效1 =开/真/是。

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