9

我有以下代码:

USE pricingdb
go

CREATE TABLE dbo.Events_060107_2012
(
    Date_Time varchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    Event_Type TEXT,
    Month_of_Year TEXT,
    Survey DOUBLE,
    Actual DOUBLE,
    Prior_Data DOUBLE,
    Revised DOUBLE,
    Relevance FLOAT,
    Ticker TEXT
);  

我得到一个错误:

"Incorrect syntax near ','.  Level 15, State 1, Line 6"

我知道这应该是一个很容易解决的问题,但无论出于何种原因,我在理解如何解决这个问题时遇到了很多麻烦。我对 SQL 的了解充其量只是初学者,所以我读过的大多数其他线程都在我头上。

提前感谢您的帮助。

4

3 回答 3

19

DOUBLE 不是 sql server 中的有效数据类型

使用 float、numeric、... 或任何其他受支持的类型。

更多信息请访问http://msdn.microsoft.com/en-us/library/ms187752.aspx

于 2012-06-05T19:03:51.240 回答
1

两个问题。首先是没有双精度数据类型。第二个是 float 需要一个大小来表示精度的差异。与上述等效的创建查询是:

CREATE TABLE dbo.Events_060107_2012
(
    Date_Time varchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    Event_Type TEXT,
    Month_of_Year TEXT,
    Survey FLOAT(53),
    Actual FLOAT(53),
    Prior_Data FLOAT(53),
    Revised FLOAT(53),
    Relevance FLOAT(24),
    Ticker TEXT
);
于 2012-06-05T19:12:07.733 回答
0

使用浮点数而不是双精度数(或十进制数)

USE pricingdb
go

CREATE TABLE dbo.Events_060107_2012
(
Date_Time varchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
Event_Type TEXT,
Month_of_Year TEXT,
Survey FLOAT,
Actual FLOAT,
Prior_Data FLOAT,
Revised FLOAT,
Relevance FLOAT,
Ticker TEXT
); 
于 2012-06-05T19:07:30.553 回答