關閉。此問題
CREATE TABLE Salespersons
(
empid INTEGER NOT NULL PRIMARY KEY,
ename CHAR(15) NOT NULL,
rank INTEGER NOT NULL DEFAULT 1 CHECK (rank IN (1,2,3)),
salary DECIMAL (7,2) NOT NULL
DEFAULT 1000.00 CHECK (salary >= 1000.00)
);
uj5u.com熱心網友回復:
我將比較 2 個腳本(您的和正確的):
你的腳本:
CREATE TABLE SalesPersons (
empid INTEGER NOT NULL,
ename CHAR(15) NOT NULL,
erank INTEGER NOT NULL DEFAULT 1 CHECK (erank IN (1,2,3)),
salary DECIMAL (7,2) NOT NULL DEFAULT 100.00
DEFAULT 1000.00 CHECK (salary >= 1000.00)
)
錯誤資訊:
More than one column DEFAULT constraint specified for column 'salary', table 'SalesPersons'.
正確的:
CREATE TABLE SalesPersons (
empid INTEGER NOT NULL,
ename CHAR(15) NOT NULL,
erank INTEGER NOT NULL DEFAULT 1 CHECK (erank IN(1, 2, 3)),
salary DECIMAL(7, 2) NOT NULL DEFAULT 1000.00 CHECK (salary >= 1000.00)
)
正如您在腳本中看到的,有 2 個默認值。它無法處理這樣的命令,因為默認值應該只有一個。另外,在現實生活的例子中,注意decimal型別,它之前只有5位數字.,檢查可能的工資。
并查看 SQL Server 中十進制精度范圍的位元組。你可以擴展更多。
Precision Storage bytes
1 - 9 5
10-19 9
20-28 13
29-38 17
如果您想要“動態默認值”,那么這是另一個問題,您應該使用觸發器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397724.html
標籤:sql sql-server 查询语句
上一篇:重寫活動記錄查詢
