お願いします、私は SQL を学び始めたばかりで行き詰まってしまいました。テスト プロジェクト用のデータベースを構築しようとしています。いくつかのテーブルを作成し、リレーションを作成し、主キーと外部キーを定義しました。これらはすべて SQL Server 2008 でビジュアル インターフェイス (テーブルの設計/編集) を介して行いました。 、ステートメントコーディングはありません(まだそこに到達していませんが、私はします:))。
Tax
と呼ばれるテーブルに列がOrders
あり、宿題をしたところ、制約付きのdecimal
データ型 (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