教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

sql2005中导入数据成功,但字段值都为空(字符转换过)怎么处理?

学院最新推荐文章
教程推荐
『sql2005中导入数据成功,但字段值都为空(字符转换过)怎么处理?』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-9-19 
在SQL2005查询中执行:

insert into Article(title,content) select top 100 cast(title as nvarchar(255))
,content,cast(cast(classid as varchar(100)) as int) from infodata a where not exists (
  select 1 from Article B where b.classid =cast(cast(a.classid as varchar(100)) as int)
  )

同在数据库AAA,  有
表Article,Infodata,
表Article:title 字段为nvarchar , content 为ntext, classid 为int
表Infodata:title(ntext),content(ntext),classid(ntext)

从infodata中导入数据到Article,要求过滤掉重复classid( 表infodata,article中classid相同的不导入),

导入后是成功了,但表article中字段值都是空的, 怎么解决?

这个问题第1个回答:
语句拷贝错了?

SQL code

insert into Article(title,content) select top 100 cast(title as nvarchar(255)) 

,content,cast(cast(classid as varchar(100)) as int) from infodata a where not exists ( 

  select 1 from Article B where b.classid =cast(cast(a.classid as varchar(100)) as int) 

  ) 



Article(title,content) 两个字段
cast(title as nvarchar(255))
,content,cast(cast(classid as varchar(100)) as int) 三个字段

这应该报语法错误的
这个问题第2个回答:
估计是语句错了.

先看查询出来的是否有数据,然后看看字段类型是否匹配?
这个问题第3个回答:
sorry,应该是

insert into Article(title,content,classid) select top 100 cast(title as nvarchar(255))
,content,cast(cast(classid as varchar(100)) as int) from infodata a where not exists (
  select 1 from Article B where b.classid =cast(cast(a.classid as varchar(100)) as int)
  )

谢谢楼上的朋友,谢谢你昨天的解答啊。
这个问题第4个回答:
先执行查询, 看看查询结果是否你需要的

SQL code

select top 100 cast(title as nvarchar(255)) 

,content,cast(cast(classid as varchar(100)) as int) from infodata a where not exists ( 

  select 1 from Article B where b.classid =cast(cast(a.classid as varchar(100)) as int) 

  ) 


这个问题第5个回答:
text还是少用点,试下


SQL code

insert into Article(title,content,classid) select top 100 cast(title as nvarchar(255)) 

,cast(content as nvarchar(255)),cast(cast(classid as varchar(100)) as int) from infodata a where not exists ( 

  select 1 from Article B where b.classid =cast(cast(a.classid as varchar(100)) as int) 

  ) 


这个问题第6个回答:
拷贝错了,明天提示成功, 但打开一看,字段都是空的。
这个问题第7个回答:
insert的列數與select的列數不一致
这个问题第8个回答:
1.如1楼说的语法错误。
2.
SQL code



select top 100 cast(title as nvarchar(255)) 

,content,cast(cast(classid as varchar(100)) as int) from infodata a where not exists ( 

  select 1 from Article B where b.classid =cast(cast(a.classid as varchar(100)) as int) 

  )




是否能得到你想要的结果?
这个问题第9个回答:
可能由于类型转换时造成的数据丢失。
ntext和nvarchar的长度有很大差别
这个问题第10个回答:
实在太sorry了,浪费大家时间了,源表的N多空记录。  实在抱歉。马上结帐,省得在遗害大众。
这个问题第11个回答:
高手云集,撤……
这个问题第12个回答:
1. 影响的行数是多少?
2. 你直接执行去掉 insert 执行查询, 检查过结果是正确的吗?
3. 你原来的表中是不是本来就有一堆空数据?

作者:echolife 来源:C.S.D.N
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - MsSql综合技巧
普通教程【脑袋快想爆炸了- -!】 怎么样
普通教程关于级联删除地疑难,新手提问,
普通教程怎么样动态控制列数?
普通教程数据库恢复 MS2000
普通教程当数据库中varchar字段值为null
普通教程create function 怎么才无法要返
普通教程各位帮我看看是啥疑难啊, SQL运
普通教程SQL server 2005 安装疑难 SP2更
普通教程sql update
普通教程update触发器地疑难
普通教程字符串地查询疑难
普通教程安全性--登陆--想建一个用户tes
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光