已解决一个表只能有一个时间戳列。因为表 ‘TM_DATA_new‘ 已经有了一个时间戳列,所以无法添加列 ‘update_time‘。

已解决一个表只能有一个时间戳列。因为表 ‘TM_DATA_new’ 已经有了一个时间戳列,所以无法添加列 ‘update_time’。






文章目录

  • 报错代码
  • 报错原因
  • 解决方法
  • 帮忙解决





报错代码



粉丝群里面的一个小伙伴在SqlServer创建一个新的数据表,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:

-- 主表
create table [dbo].[TM_DATA_new] (
	"tmid" varchar(32) PRIMARY KEY(reg_no,class_no), 
	"reg_no" varchar(32) , 
	"class_no" tinyint, 
	
	中间字段省略...

	"create_time" timestamp, -- 创建时间
	"update_time" timestamp, -- 更新时间
	"status" int, -- 状态预留字段
	"source_type" nvarchar(100) , --文件类型
	"source_time" nvarchar(100) -- 文件时间
)


报错信息截图如下

在这里插入图片描述




报错原因



报错原因

SQL Server 的TIMESTMAP数据类型与其他数据库的TIMESTMAP完全不同,把数据类型改为datetime是唯一的办法。


在SQL server 里TIMESTMAP varbinary(8)的等数据类型,作用用来标记行最后更新时间,其他的TIMESTMAP视DBMS不同略有不同解释但均可直接转换为SQL Server 的datatime类型。而TIMESTMAP类型的字段只能有一个,小伙伴选择下面的其他时间类型字段修改即可!!!





解决方法



Date类型字段有,选择下面一种类型即可:


已解决一个表只能有一个时间戳列。因为表 ‘TM_DATA_new‘ 已经有了一个时间戳列,所以无法添加列 ‘update_time‘。_第1张图片

修改为其他即可:

"create_time" smalldatetime, -- 创建时间
"update_time" timestamp, -- 更新时间

帮忙解决

本文已收录于:《告别Bug》专栏

本专栏用于记录学习和工作中遇到的各种疑难Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中等等问题,订阅专栏+关注博主后如遇到其他问题可私聊帮忙解决!!!

你可能感兴趣的:(《告别Bug》,数据库,sqlserver,sql)