如何在sql语句中,为某个字段赋空值?

时间:2021-07-03 15:00:58
因为sql语句中有些字段可以空值,组成插入sql语句时,总是要特殊处理一下,如果该值为空,则不组成那个字段,很麻烦。

9 个解决方案

#1



insert into tb1(id,name,address) values (1,'zhangsan',null) --null就是空值

#2


你是赋''
还是NULL
如果是''可以给个默认值''

#3


DECLARE @T TABLE(ID int,NAME nvarchar(50),Memo nvarchar(20))
INSERT INTO @T SELECT 1,'a','aa'
INSERT INTO @T SELECT 1,'a',NULL
INSERT INTO @T SELECT 1,null,NULL

SELECT 
'insert into 表名(ID,Name,Memo) values('+RTRIM(ID)+','+ISNULL(''''+NAME+'''','null')+','+ISNULL(''''+Memo+'''','null')+')'
FROM @T

/*
insert into 表名(ID,Name,Memo) values(1,'a','aa')
insert into 表名(ID,Name,Memo) values(1,'a',null)
insert into 表名(ID,Name,Memo) values(1,null,null)
*/

#4


引用 2 楼 sql_sf 的回复:
你是赋''
还是NULL
如果是''可以给个默认值''


如何在sql语句中,为某个字段赋空值?

#5


在SQL2008可以直接生成數據腳本

#6


还是在程序中处理吧,别图省事,把本来很简单的语句搞得那么复杂

#7


我用access数据库,insert 语句中使用null,提示错误。

#8


高手高高手再哪里?

#9


我是MS SQL SERVER版,你为什么不去ACCESS版问?

#1



insert into tb1(id,name,address) values (1,'zhangsan',null) --null就是空值

#2


你是赋''
还是NULL
如果是''可以给个默认值''

#3


DECLARE @T TABLE(ID int,NAME nvarchar(50),Memo nvarchar(20))
INSERT INTO @T SELECT 1,'a','aa'
INSERT INTO @T SELECT 1,'a',NULL
INSERT INTO @T SELECT 1,null,NULL

SELECT 
'insert into 表名(ID,Name,Memo) values('+RTRIM(ID)+','+ISNULL(''''+NAME+'''','null')+','+ISNULL(''''+Memo+'''','null')+')'
FROM @T

/*
insert into 表名(ID,Name,Memo) values(1,'a','aa')
insert into 表名(ID,Name,Memo) values(1,'a',null)
insert into 表名(ID,Name,Memo) values(1,null,null)
*/

#4


引用 2 楼 sql_sf 的回复:
你是赋''
还是NULL
如果是''可以给个默认值''


如何在sql语句中,为某个字段赋空值?

#5


在SQL2008可以直接生成數據腳本

#6


还是在程序中处理吧,别图省事,把本来很简单的语句搞得那么复杂

#7


我用access数据库,insert 语句中使用null,提示错误。

#8


高手高高手再哪里?

#9


我是MS SQL SERVER版,你为什么不去ACCESS版问?