我想创建一个具有以下列数据类型的SQL表。
- 名称:Varchar
- 等级:数据将有"#"后面跟着数字,也可以是varchar。例如:#1、#2、TML
- 大小:可以是整数和分数。例如:26/30、80、85/69
- 平均值:将是十进制数字
我根据以上要求创建了表格:
CREATE TABLE [dbo].[Report_Proj](
[Name] [nvarchar](255) NOT NULL,
[Grade] [nvarchar](50) NOT NULL,
[Sizes] [float](10) NOT NULL,
[Average][decimal](10, 10) NOT NULL
但当我将数据插入该表时,我会收到错误"Msg 8115,Level 16,State 8,Line 1将varchar转换为数据类型numeric时发生算术溢出错误。该语句已终止。"
我哪里可能出错。出于报告目的需要上述数据,将来不会有任何算术计算。
只需将十进制值数据类型更改为(10,2)
declare @Report_Proj TABLE (
[Name] [nvarchar](255) NOT NULL,
[Grade] [nvarchar](50) NOT NULL,
[Sizes] [float](10) NOT NULL,
[Average][decimal](18, 2) NOT NULL)
insert into @Report_Proj ([Name],[Grade],[Sizes],[Average])values ('ram','#1',26/30,10.2)
select * from @Report_Proj