使用 TSQL 更改现有列的类型 - 约束怎么样?

发布于 2024-12-22 03:24:37 字数 194 浏览 2 评论 0原文

我想将列的类型从 bit 更改为tinyint。这是我的 SQL:

ALTER TABLE table ALTER COLUMN column TINYINT NOT NULL

这告诉我列有一个约束。我放弃了约束,但这真的有必要吗?这样做的正确方法是什么?我想以后我也需要约束。

谢谢 :)

I want to alter the type of a column from bit to tinyint. This is my SQL:

ALTER TABLE table ALTER COLUMN column TINYINT NOT NULL

This tells me that there is a constraint for column. I dropped the constraint, but is this really necessary? Whats the right way to do this? I think afterwards I need a constraint, too.

Thanks :)

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

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

发布评论

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

评论(1

自由如风 2024-12-29 03:24:37

是的,这是必要的。

BIT 字段的约束不可能对 tinyint 字段起作用,因为它们是不同的数据类型。

1BIT 值并不意味着“第一”,它表示 trueyes 或 <代码>上。

就好像你有一条规则:

该值必须是 2010 年 1 月 1 日到 2010 年 12 月 31 日之间的日期

...然后您将该值更改为十进制数据类型。小数不可能满足约束条件。

在 DDL 操作之前,您必须禁用约束,因为它们可能在更改后无效。

Yes this was necessary.

A constraint on a BIT field can't possibly work on a tinyint field since they are different datatypes.

The BIT value of 1 doesn't mean "The number one", it indicates true or yes or on.

It's as if you had a rule:

This value needs to be a date between 1/1/2010 and 12/31/2010

...and then you changed the value to be a decimal datatype. The decimal can't possibly meet the criteria of the constraint.

Before DDL operations you must disable constraints since they may be invalid after the change.

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