下面是修改列的一句代码。。
ALTER TABLE #Temp Add ['+Cast(Day(@Date) As varchar)+'_发出] int default 0
请问要怎么样设置默认值??
8 个解决方案
#1
你那个设置是插入的时候默认是0,再读取
你直接读取肯定没数据了
你直接读取肯定没数据了
#2
CREATE TABLE tb(ID INT,data varchar(10))
DECLARE @SQL VARCHAR(1000)
SET @SQL='ALTER TABLE tb ADD ['+CAST(DAY(GETDATE()) AS VARCHAR)+'_发出] INT DEFAULT 0'
EXEC(@SQL)
INSERT tb(id,data) VALUES(1,'aa')
SELECT * FROM tb
DROP TABLE tb
#3
貌似你这跟我说的没什么区别呀。
我这样插入列后是要动态更新这列的数据的(从别的表里取值,有好几个表连接的,如果取值为空的话就为0),并不是直接插入值
不知道怎么样设置默认值。。开始我也以为这样设置可以,but in fact ,not..
#4
insert #temp(f1,f2) select isnull(f1,0),isnull(f2,0) from otherTable
#5
这样就是设置是默认值..
而你说到的从另的表里.几个表的连接..如果你得到的是为空(NULL)..
那就说你已经显式的把NULL插入到列当中了..
都已经把值插入到列当中了.还谈什么默认值.
#6
如果就是用ISNULL()去判断是否为NULL,是就取0的话.那把我的话都忽略掉吧.
#7
数据已存在是不能这样用
加上with values就行了
加上with values就行了
use tempdb
go
create table #Temp(ID int)
insert #Temp select 1
insert #Temp select 2
go
declare @Date datetime,@s nvarchar(1000)
set @Date=getdate()
set @s='ALTER TABLE #Temp Add ['+Cast(Day(@Date) As varchar)+'_发出] int default 0 with values'--加上with values
exec(@s)
select * from #Temp
/*
ID 26_发出
----------- -----------
1 0
2 0
(2 行受影响)
*/
#8
當你再插入數據是就將它設置為0,
但是你查看以前值依舊是null。
但是你查看以前值依舊是null。
#1
你那个设置是插入的时候默认是0,再读取
你直接读取肯定没数据了
你直接读取肯定没数据了
#2
CREATE TABLE tb(ID INT,data varchar(10))
DECLARE @SQL VARCHAR(1000)
SET @SQL='ALTER TABLE tb ADD ['+CAST(DAY(GETDATE()) AS VARCHAR)+'_发出] INT DEFAULT 0'
EXEC(@SQL)
INSERT tb(id,data) VALUES(1,'aa')
SELECT * FROM tb
DROP TABLE tb
#3
貌似你这跟我说的没什么区别呀。
我这样插入列后是要动态更新这列的数据的(从别的表里取值,有好几个表连接的,如果取值为空的话就为0),并不是直接插入值
不知道怎么样设置默认值。。开始我也以为这样设置可以,but in fact ,not..
#4
insert #temp(f1,f2) select isnull(f1,0),isnull(f2,0) from otherTable
#5
这样就是设置是默认值..
而你说到的从另的表里.几个表的连接..如果你得到的是为空(NULL)..
那就说你已经显式的把NULL插入到列当中了..
都已经把值插入到列当中了.还谈什么默认值.
#6
如果就是用ISNULL()去判断是否为NULL,是就取0的话.那把我的话都忽略掉吧.
#7
数据已存在是不能这样用
加上with values就行了
加上with values就行了
use tempdb
go
create table #Temp(ID int)
insert #Temp select 1
insert #Temp select 2
go
declare @Date datetime,@s nvarchar(1000)
set @Date=getdate()
set @s='ALTER TABLE #Temp Add ['+Cast(Day(@Date) As varchar)+'_发出] int default 0 with values'--加上with values
exec(@s)
select * from #Temp
/*
ID 26_发出
----------- -----------
1 0
2 0
(2 行受影响)
*/
#8
當你再插入數據是就將它設置為0,
但是你查看以前值依舊是null。
但是你查看以前值依舊是null。