将计算列转换为特定数据类型

时间:2013-01-17 19:09:10

标签: sql sql-server-2008

我目前正在尝试在Java GUI中的SQLSERVER 2008 R2中执行一些SQL查询。我正在研究货币管理系统。 我必须存储Long数据类型值,因为货币数字可能超过10位,但计算列不显示表格设计视图中的任何数据类型选项。我真的需要帮助,因为我的值超过10位数,我需要从我的数据库中选择总值。我试图执行代码,但它显示某种溢出错误,请帮助

以下是我的数据库名称CNV

表格的脚本文件
USE [CNV]

CREATE TABLE [dbo].[soil_det](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [rm_id] [bigint] NULL,
    [box_no] [int] NULL,
    [weight] [decimal](18, 2) NULL,
    [note_state] [varchar](10) NULL,
    [dm_state] [varchar](10) NULL,
    [1] [int] NULL,
    [2] [int] NULL,
    [5] [int] NULL,
    [10] [int] NULL,
    [20] [int] NULL,
    [50] [int] NULL,
    [100] [int] NULL,
    [500] [int] NULL,
    [1000] [int] NULL,
    [tp]  AS (((((((([1]+[2])+[5])+[10])+[20])+[50])+[100])+[500])+[1000]),
    [tv]  AS (((((((([1]*(1)+[2]*(2))+[5]*(5))+[10]*(10))+[20]*(20))+[50]*(50))+[100]*(100))+[500]*(500))+[1000]*(1000)) PERSISTED,
    [tp_ex1]  AS ((((((([2]+[5])+[10])+[20])+[50])+[100])+[500])+[1000]),
    [tv_ex1]  AS ((((((([2]*(2)+[5]*(5))+[10]*(10))+[20]*(20))+[50]*(50))+[100]*(100))+[500]*(500))+[1000]*(1000)),
    [val_1]  AS ([1]*(1)),
 CONSTRAINT [PK_mut_det] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

1 个答案:

答案 0 :(得分:3)

这里有解决方案,您可以执行图片中给出的内容

点击此处查看完整文章:SQL SERVER – Puzzle – Solution – Computed Columns Datatype Explanation

enter image description here

相关问题