【发布时间】:2012-03-27 16:32:51
【问题描述】:
我有一个名为 myTable 的表,其中包含几列,其中一些列有默认值,而对于其余列,NULL 是一个可能且可接受的值。
有一个名为 pkVariable 的主键,其余列名为 column2、column3、column4 和 column5。 column2 和 column3 配置为分别获取默认值 0 和 1,并配置为 NOT NULL。 column4 和 column5 没有默认值,但它们可能设置为 NULL 值。
我的问题是,如何将新的“空”记录插入 myTable.我的意思是,我想在 myTable 中的新记录中包含主键值、column2 和 column3 的默认值以及 column4 和 column5 的 NULL 值。
如果 pkVariable 有默认值或者是 IDENTITY,我可以这样做:
INSERT INTO myTable DEFAULT VALUES;
我买不到,因为 pkVariable 必须在 INSERT 子句中获取 pkValue。
我可以使用:
INSERT INTO myTable VALUES (pkValue, DEFAULT, DEFAULT, DEFAULT, DEFAULT);
它有效,但我不想依赖于列数。
因此,实现我的目标的正确语法是什么?
我错误地认为我可以做到:
INSERT INTO [myTable] ([pkVariable]) VALUES (pkValue) DEFUALT VALUES;
并想到了这个方向:
WITH pkVariable = pkValue
INSERT INTO [myTable] DEFAULT VALUES;
还有其他建议吗?
【问题讨论】:
标签: sql sql-server sql-server-2008 sql-server-2008-r2