如何将空值插入数据库?

时间:2016-09-13 06:15:39

标签: sql sql-server

我的查询不起作用。它表示在null关键字附近存在语法错误。我不知道如何解决它。我想在数据库中插入空字符串或null 。我该怎么办? 这是我的查询

insert into [REMARKS]
values((SELECT top 1 ref_no
FROM A_MASTER order by ref_no desc ), (SELECT top 1 current_dept
FROM A_MASTER order by ref_no desc ),'630590', GETDATE()), NULL

内部查询工作没有任何错误。

4 个答案:

答案 0 :(得分:2)

您错过了close parenthesis,但这是插入

的正确方法
INSERT INTO [remarks] 
            (ref_no, 
             current_dept, 
             third_col) 
SELECT TOP 1 ref_no, 
             current_dept, 
             NULL 
FROM   a_master 
ORDER  BY ref_no DESC 

注意:在插入过程中始终添加插入列列表

答案 1 :(得分:2)

你错过了你的小括号,我应该喜欢这个..

 insert into [REMARKS]
 values((SELECT top 1 ref_no
 FROM A_MASTER order by ref_no desc ), (SELECT top 1 current_dept
 FROM A_MASTER order by ref_no desc ),'630590', GETDATE(), NULL)

在您的查询中,您将同一个表两次引用为两列。

你可以这样写..

 insert into [REMARKS] select top 1 ref_no,curent_dept 
 '630590',GETDATE(),NULL 
 from A_MASTER 
 order By ref_no desc

由于两个列都来自同一个表..

答案 2 :(得分:0)

我发现了错误。原因是我在插入查询的关闭paranthesis 之后添加了 NULL关键字。当我在paranthesis里面添加它时它起作用。

{{1}}

答案 3 :(得分:0)

为什么我们应该在列中插入NULL,如果它可以为空并且没有定义任何默认值,那么我们只是在插入时忽略该列然后它将自动保存为空

INSERT INTO [remarks] (ref_no, current_dept) 
SELECT TOP 1 ref_no, 
         current_dept 
FROM   a_master 
ORDER  BY ref_no DESC

只需在插入中提及要插入非空值的列定义,并仅为这些列选择所需的值,并且不要包含您想要NULL值的列。