【问题标题】:How can we create primary key as a decimal data type, and can it be auto increment我们如何将主键创建为十进制数据类型,它可以自动递增吗
【发布时间】:2012-06-15 05:08:56
【问题描述】:

在我的数据库中,我们有一个超出 int 最大值的字段, 我可以选择 bigint 作为主键,但我想知道我们可以使用小数(2,18)作为主键吗?如果可以,我们如何自动增加这个字段?

【问题讨论】:

  • 在 SQL Server 中,DECIMAL 总是用(precision, scale) 指定,其中precision 位数,scale 是后面的位数小数点。所以你的decimal(2,18) 一点意义都没有——总共有 2 位,小数点后有 18 位?!?

标签: sql-server-2008 primary-key


【解决方案1】:

您可以将小数作为主键,但它的小数位数必须为 0。
SQL Server 将处理自动递增。
示例:

CREATE TABLE my_table (
     id decimal(18,0) identity primary key, 
     some_column varchar(200)
);

参考:http://beyondrelational.com/modules/2/blogs/28/posts/10331/sql-server-what-are-the-data-types-supported-in-identity-columns.aspx

在此处查看您的总体规划:http://sqlfiddle.com/#!3/e491d/1/0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多