期待ID错误 - SQL Server

时间:2013-08-01 06:23:37

标签: sql-server

我在SQL Server中创建表时遇到问题

一旦我选择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'附近的语法不正确

当我把鼠标移过它时,它说 " ' NOT'附近的语法不正确。期待ID"

有人能告诉我问题是什么!!!

3 个答案:

答案 0 :(得分:8)

double不是SQL中的数据类型,您必须使用floatreal

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

相关:What represents a double in sql server?

答案 1 :(得分:2)

您无法在SQL SERVER中使用DOUBLE。尝试使用Decimal或Float或Real或Money甚至Smallmoney。见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 ,
) 

答案 2 :(得分: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)
)