我有这样一张桌子:
create table1 (field1 int,
field2 int default 5557,
field3 int default 1337,
field4 int default 1337)
Run Code Online (Sandbox Code Playgroud)
我想插入一个具有field2和field4默认值的行.
我已经尝试insert into table1 values (5,null,10,null)但它不起作用ISNULL(field2,default)也不起作用.
当我插入行时,如何告诉数据库使用列的默认值?
我有一个包含单列的表,这是一个自动生成的标识
create table SingleIdTable (
id int identity(1,1) not null
)
Run Code Online (Sandbox Code Playgroud)
我可以使用自动生成的id插入一行:
insert into SingleIdTable default values
Run Code Online (Sandbox Code Playgroud)
我想插入许多行并使用输出语法来获取它们的ID,例如:
insert into SingleIdTable
output inserted.Id into @TableOfIds
select (default values) from SomeOtherTable where Attribute is null
Run Code Online (Sandbox Code Playgroud)
凡意图是将行插入SingleIdTable在每行SomeOtherTable,其中Attribute为null使用自动生成的ID.以上不起作用,但我怎么能这样做.我注意到,如果我的表不仅仅有一个列我可以做到,但我不能选择空行,这是我真正想要做的.
我无法改变定义SomeOtherTable.
假设您在SQL Server中有一个以下列方式声明的表:
CREATE TABLE my_table
(
id INT IDENTITY(1,1) PRIMARY KEY
);
Run Code Online (Sandbox Code Playgroud)
你怎么INSERT进这张桌子的?我试过以下,都无济于事:
INSERT INTO my_table;
INSERT INTO my_table () VALUES ();
INSERT INTO my_table SELECT NULL;
Run Code Online (Sandbox Code Playgroud)