2013-08-01 75 views
2

我有一個問題,當我在SQL Server期待ID錯誤 - SQL服務器

一旦我選擇DOUBLE作爲數據類型創建表,在我的臉上跳下錯誤!

這是下面的代碼:

CREATE TABLE BATCH 
(Product_Name VARCHAR(200) NOT NULL, 
    Product_Brand VARCHAR(100) NOT NULL, 
    CONSTRAINT Price_FK FOREIGN KEY (Product_Name,Product_Brand)REFERENCES Product (Product_Name,Product_Brand), 
    BATCH_Date AS GETDATE(), 
    BATCH_OriginalPrice DOUBLE NOT NULL DEFAULT 0, 
    BATCH_TAX DOUBLE NOT NULL DEFAULT 0, 
    BATCH_ProductCost DOUBLE NOT NULL DEFAULT 0 , 
) 

的錯誤是如此之近的關鍵詞的每個雙 不正確的語法後「而不是」

,當我通過鼠標懸停在上面,它說 「不正確的語法靠近'NOT'。期待ID」

有人可以告訴我什麼是問題!

回答

7

double不是SQL中的數據類型,您必須使用floatreal

以您的示例爲例,您也可以使用money

相關:What represents a double in sql server?

+0

完整列表(http://msdn.microsoft.com/en-us/library/ms187752.aspx) –

+0

但我怎麼映射它在Java? java代表[MONEY]是什麼? – Wassan

1

嘗試使用DECIMALFLOATREAL數據類型 -

CREATE TABLE BATCH ( 
    Product_Name VARCHAR(200) NOT NULL, 
    Product_Brand VARCHAR(100) NOT NULL, 
    BATCH_OriginalPrice DECIMAL(18,2) NOT NULL DEFAULT 0, 
    BATCH_TAX DECIMAL(18,2) NOT NULL DEFAULT 0, 
    BATCH_ProductCost DECIMAL(18,2) NOT NULL DEFAULT 0 , 
    BATCH_Date AS GETDATE(), 
    CONSTRAINT Price_FK FOREIGN KEY (Product_Name,Product_Brand) 
    REFERENCES Product (Product_Name,Product_Brand) 
) 
+0

但是,我將如何在JAVA中表示這些數據類型? – Wassan

1

您不能使用SQL Server DOUBLE。嘗試使用十進制或浮動或真實或金錢甚至Smallmoney。請參閱SQL Server [數據類型]的HERE

CREATE TABLE BATCH 
(Product_Name VARCHAR(200) NOT NULL, 
    Product_Brand VARCHAR(100) NOT NULL, 
    CONSTRAINT Price_FK FOREIGN KEY (Product_Name,Product_Brand)REFERENCES Product (Product_Name,Product_Brand), 
    BATCH_Date AS GETDATE(), 
    BATCH_OriginalPrice REAL NOT NULL DEFAULT 0, 
    BATCH_TAX REAL NOT NULL DEFAULT 0, 
    BATCH_ProductCost REAL NOT NULL DEFAULT 0 , 
)