SQL Server 更改字段名称

发布于 2024-10-06 00:59:07 字数 355 浏览 10 评论 0原文

我在使用 SQL Server 2005 将数据库字段从 datetime 更改为 integer 时遇到问题

我的代码是...

alter table overtime alter column adate numeric(5)

在使用此查询时收到如下错误

不允许隐式转换 数据类型日期时间到数据类型 数字、表格 “DaiichiPayroll.dbo.Overtime”,列 '约会'。使用 CONVERT 函数 运行此查询。

有什么解决办法吗?

I have problem to alter the database field from datetime to integer with values using SQL Server 2005

My code is...

alter table overtime alter column adate numeric(5)

while using this query am getting error like this

Disallowed implicit conversion from
data type datetime to data type
numeric, table
‘DaiichiPayroll.dbo.Overtime’, column
‘adate’. Use the CONVERT function to
run this query.

Any solutions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

七七 2024-10-13 00:59:07

服务器无法将您的日期时间列隐式转换为数字。解决方案之一是 -

  1. 创建一个新的数字类型列,
  2. 通过编写附加查询将数据从 dateTime 列转换为数字列,然后
  3. 删除 dateTime 列
  4. 将新添加的列重命名为与已删除的 dateTime 列相同的名称。

The server is unable to convert your dateTime column to numeric implicitly. One of the solution is to -

  1. create a new column of numeric type
  2. convert your data from dateTime column to numeric column by writing an additional query and then
  3. delete the dateTime column
  4. Rename that newly added column to the same as that deleted dateTime column.
九公里浅绿 2024-10-13 00:59:07

虽然 Sachin 的答案可能是最好的解决方案,但您应该知道该表仍将继续使用已删除列的存储空间 直到重建聚集索引

因此,如果有一些明确的 convert 语法可以运行,例如将 8 字节 datetime 列更改为 8 字节 ,那就太好了>bigint 列,但据我所知不存在。

另一种方法是使用 SSMS 为您生成脚本。这将生成一个重建整个表的脚本。然而,如果您有一个大表或许多 NCI,那么这种阻塞开销很可能是不可接受的。

Whilst Sachin's answer is probably the best solution you should be aware that the table will still continue to use the storage space for the deleted column until you rebuild the clustered index.

For that reason it would be quite nice if there was some explicit convert syntax that could be run to, for example, change an 8 byte datetime column to an 8 byte bigint column but AFAIK none exists.

An alternative would be to use SSMS to generate the script for you. This will generate a script that rebuilds the whole table. If you have a large table or many NCIs the blocking overhead of this may well be unacceptable however.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文