拜托,我刚开始学习 SQL 并卡住了。我正在尝试为我的测试项目构建一个数据库,我已经创建了一些表,做了关系,定义了主键和外键.....所有这些都在 SQL Server 2008 中通过可视界面(表设计/编辑) ,没有语句编码(还没有到那里,但我会的:))。
我Tax
在一个名为的表中有一个列,Orders
我做了功课,发现最好使用带有约束的decimal
数据类型(我使用十进制(5, 2)) 。CHECK
所以我右键单击列 - >约束并在表达式中输入
([TAX] >= (0.00) AND [TAX] <= (100.00))
我的值超出了检查约束,我可以输入 123456.0999,然后在表中得到 1234560999,如果我输入 2.5,我得到 25 ..... 所以CHECK CONSTRAINT不能正常工作???
请帮忙
编辑:这是我桌子上的创建脚本
USE [MyCompany]
GO
/****** Object: Table [dbo].[Orders] Script Date: 03/22/2013 11:33:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Orders](
[OrderID] [int] IDENTITY(1,1) NOT NULL,
[OrderDateTime] [smalldatetime] NOT NULL,
[CustomerID] [int] NOT NULL,
[Tax] [decimal](5, 2) NULL,
[Shipping] [decimal](7, 3) NOT NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[OrderID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Orders] WITH CHECK ADD CONSTRAINT [FK_Orders_Customers] FOREIGN KEY([CustomerID])
REFERENCES [dbo].[Customers] ([CustomerID])
GO
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Customers]
GO
ALTER TABLE [dbo].[Orders] WITH CHECK ADD CONSTRAINT [CK_Orders_Tax] CHECK (([Tax]>=(0.0) AND [Tax]<=(100.0)))
GO
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [CK_Orders_Tax]
GO