求助高手啊!!在SQL 中插入数据时,提示不能将显式值插入时间戳列请对列列表使用 INSERT 来排除时间戳列

fxn1212 2012-08-23 11:05:56
在SQL 中插入数据时,提示不能将显式值插入时间戳列请对列列表使用 INSERT 来排除时间戳列。是timestamp类型的问题,那么不能修改数据表中的结构怎么样进行插入?执行这一句的时候
insert into rdrecords32 select *
from xcd_tem_rdrecords32
提示为 sql不能将显式值插入时间戳列。请对列列表使用 INSERT 来排除时间戳列,或将 DEFAULT 插入时间戳列。
...全文
15644 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
WONGRAIN 2014-03-11
  • 打赏
  • 举报
回复
写个东东解决 判断是否包含 CHARINDEX(@DataType, 'Timestamp') <= 0 SET @FieldList = @FieldList + ', [' + @Name + ']'
發糞塗牆 2012-08-23
  • 打赏
  • 举报
回复
时间戳列好像是不需要显式插入的,由系统自动生成,你显式插入反而会报错,比如表a(id,timestamp),那你插入的时候只需要插入id就可以了。你试试。另外,时间戳是不建议后续继续使用的功能。
fxn1212 2012-08-23
  • 打赏
  • 举报
回复
这点是好的。。最重要的是timestamp类型的问题,那么不能修改数据表中的结构怎么样进行插入?
發糞塗牆 2012-08-23
  • 打赏
  • 举报
回复
你不要select *,把要插入的列显式写出来。用*号是不好的习惯
wobuainiyes 2012-08-23
  • 打赏
  • 举报
回复
你插入的时候写清楚插入那些列就可以了,然后提供的值里面和列字段对应就可以了。

具体到你个例子,
假设你两个表结构都为 id(自增) value1 value2 timestamp
那么,你 INSERT SELECT 时,不要 SELECT *
用 SELECT value1,value2 就可以了,因为 id 是自增列,系统会自动处理。timestamp也是系统自动处理的,这两个字段都不能显示提供插入值。
fxn1212 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

时间戳列好像是不需要显式插入的,由系统自动生成,你显式插入反而会报错,比如表a(id,timestamp),那你插入的时候只需要插入id就可以了。你试试。另外,时间戳是不建议后续继续使用的功能。
[/Quote]插不进数据。。。杯具了有其他的方法不?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧