| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 561 人关注过本帖
标题:一个关于SQLserver临时表的问题
取消只看楼主 加入收藏
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
结帖率:97.3%
收藏
已结贴  问题点数:20 回复次数:3 
一个关于SQLserver临时表的问题
数据都在远程服务器上,使用SQLserver数据库
数据库中的表的每个字段都有设定default和not null,如:alter table TableName add 字段名 varchar(20) default '' not null
向正式表中插入记录时,未涉及的字段都会按照default的定义赋值

操作
-- 先生成一个空的临时表
select * INTO #临时表名 from TableName where 1=2
向这个临时表中插入记录
问题来了,如果insert 命令只涉及了其中部分字段,则会报错:字段名X 不允许为空
从报错内容来看,临时表是继承了正式表的not null设定,但好像没继承default定义

问:生成临时表时应该怎么写才能完整继承正式表的相关设定
或者:完全不继承正式表的设定也可以(字段都允许空)


[此贴子已经被作者于2023-5-12 10:05编辑过]

搜索更多相关主题的帖子: 设定 临时表 继承 SQLserver 字段 
2023-05-11 15:24
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:0 
感谢以上回复
确实是想偷懒,如果只能使用正式表的创建语句来生成临时表的话,那还是插入时把每个字段都给值来的简单
另外,就算是能反查,也没法使用SQLserver菜单方式,还是要在程序里实现

2023-05-11 20:49
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:0 
回复 6楼 csyx
感谢提供的方法,这样就会确保没问题了

我只是对临时表字段设定的继承有疑问,为什么只继承了一部分,我怕是我的方法有问题
2023-05-12 08:01
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:0 
SELECT id,shopcode,ordercode,denpyouno,quantity INTO #_6M50KVJ3J FROM 正式表名 WHERE 1=2
ALTER TABLE #_6M50KVJ3J add DEFAULT '' for [id]
ALTER TABLE #_6M50KVJ3J add DEFAULT '' for [shopcode]
ALTER TABLE #_6M50KVJ3J add DEFAULT '' for [ordercode]
ALTER TABLE #_6M50KVJ3J add DEFAULT '' for [denpyouno]
ALTER TABLE #_6M50KVJ3J add DEFAULT '' for [quantity]

insert into #_6M50KVJ3J (shopcode) values ('asd')
insert into #_6M50KVJ3J (ordercode) values ('111')
select * from #_6M50KVJ3J

drop table #_6M50KVJ3J

以上方法测试可行

二楼csyx版主说的正确

发现一个奇怪的现象:
对数值型字段,default ''居然能行,而且默认值还是数值

[此贴子已经被作者于2023-5-12 10:08编辑过]

2023-05-12 10:04
快速回复:一个关于SQLserver临时表的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.283485 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved