不知哪里出错了,大侠们帮我看看,感激不尽

012 2003-09-23 06:38:27
create table Department
(
cDepartmentID char(4) constraint pkDepartment primary key,
vDepartmentName varchar(20),
vDepartmentHead varchar(20),
vLocation varchar(200)
)
raiserror('creating Department...',0,1)

create table Employee
(
cEmployeeID char(4) constraint pkEmployee primary key,
vEmployeeName varchar(20),
vEmployeeAddress varchar(200),
vEmployeePhone varchar(15) constraint ckEmployee check(vEmployeePhone like('([0-9][0-9][0-9][0-9])-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cGender char(1),
dDateOfBirth datetime,
cDepartmentID char(4) constraint fkEmployee references Department(cDepartmentID),
vRole varchar(20),
vRemarks varchar(200)
)
raiserror('creating Employee...',0,1)

create table Operator
(
cLoginID char(4) constraint pkOperator primary key,
cEmployeeID char(4) constraint fkOperator references Employee(cEmployeeID),
vPassword varchar(20),
cPermission char(1)
)
raiserror('creating Operator...',0,1)

create table AccountType
(
cAccountTypeID char(4) constraint pkAccountType primary key,
vAccountTypeName varchar(20),
vDescription varchar(100),
mMinimumBalance money,
fRate float,
iLength int
)
raiserror('creating AccountType...',0,1)

create table Customer
(
cCustomerID char(10),
vCustomerName varchar(20),
vCustomerAddress varchar(200),
dDateOfBirth datetime,
vCustomerPhone varchar(15) constraint ckCustomer_CustomerPhone check(vCustomerPhone like('([0-9][0-9][0-9][0-9])-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cGender char(1),
vEmail varchar(50),
vPicture varchar(200),
cIDCardNo char(15)constraint ckCustomer_IDCardNo check(cIDCardNo like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cAccountNumber char(19) constraint pkAccount primary key,
cAccountTypeID char(4) constraint fkCustomer_AccountTypeID references AccountType(cAccountTypeID),
cAccessCode char(6),
mAccountBalance money,
cATMCardNumber char(16),
dAccountOpenedDate datetime,
dAccountExpiryDate datetime,
cLoginID char(4) constraint fkCustomer_LoginID references Operator(cLoginID)
)
raiserror('creating Customer...',0,1)

create table ATMCard
(
cATMCardNumber char(16) constraint fkATMCard_ATMCardNumber references Customer(cATMCardNumber),
cAccountNumber char(19) constraint fkATMCard_AccountNumber references Customer(cAccountNumber),
cATMAccessCode char(6),
dCardOpenedDate datetime,
dCardExpiryDate datetime,
vRemarks varchar(200),
cLoginID char(4) constraint fkATMCard_LoginID references Operator(cLoginID),
constraint pkATMCard primary key(cATMCardNumber)
)
raiserror('creating ATMCard...',0,1)

create table CheckBookDetails
(
vCheckBookNumber varchar(20) constraint pkCheckBookDetails primary key,
cAccountNumber char(19) constraint fkCheckBookDetails_AccountNumber references Customer(cAccountNumber),
dDateIssued datetime,
cStartNumber varchar(20),
cEndNumber varchar(20),
dCheckBookOpenedDate datetime,
dCheckBookExpiryDate datetime,
vRemarks varchar(200),
cLoginID char(4) constraint fkCheckBookDetails_LoginID references Operator(cLoginID)
)
raiserror('creating CheckBookDetails...',0,1)

create table TransactionsOfAccount
(
iTransactionID int constraint pkTransaction primary key,
dTransactionDate datetime,
vTransactionType varchar(10),
vTransactionMode varchar(10),
vCheckBookNumber varchar(20) constraint fkTransactionsOfAccount_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
cATMCardNumber char(16) constraint fkTransactionsOfAccount_ATMCardNumber references Customer(cATMCardNumber),
cAccountNumber varchar(19) constraint fkTransactionsOfAccount_AccountNumber references Customer(cAccountNumber),
mDebitWithdrawal money,
mCreditDeposit money,
mBalance money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionsOfAccount_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionsOfAccount...',0,1)

create table TransactionOfCheckBook
(
iTransactionID int constraint pkTransactionOfCheckBook primary key,
dTransactionDate datetime,
vTransactionType varchar(10),
vTransactionMode varchar(10),
cAccountNumber char(19) constraint fkTransactionOfCheckBook_AccountNumber references Customer(cAccountNumber),
vCheckBookNumber varchar(20) constraint fkTransactionOfCheckBook_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
mAmount money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionOfCheckBook_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionOfCheckBook...',0,1)

create table TransactionOfATMCard
(
iTransactionID int constraint pkTransactionOfATMCard primary key,
dTransactionDate datetime,
vTransactionMode varchar(10),
vTransactionType varchar(10),
vCheckBookNumber varchar(20) constraint fkTransactionOfATMCard_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
cAccountNumber char(19) constraint fkTransactionOfATMCard_AccountNumber references Customer(cAccountNumber),
cATMCardNumber char(16) constraint fkTransactionOfATMCard_ATMCardNumber references Customer(cATMCardNumber),
mDebitWithdrawal money,
mCreditDeposit money,
mBalance money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionOfATMCard_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionOfATMCard...',0,1)

最后执行的结果是:
----------------------------------
creating Department...
creating Employee...
creating Operator...
creating AccountType...
creating Customer...
服务器: 消息 1776,级别 16,状态 1,行 66
在被引用表 'Customer' 中没有与外键 'fkATMCard_ATMCardNumber' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 66
未能创建约束。请参阅前面的错误信息。

我真是想不通,哪里出错了,大侠们帮我看看,谢谢
...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
012 2003-09-23
  • 打赏
  • 举报
回复
大力,你的执行仍是错误的,mfcprogrammer的做法正确,我执行了一下,没有错误
另外,也存在一点逻辑错误,mfcprogrammer也帮我查了出来:
create table ATMCard
(
cATMCardNumber char(16) constraint pkATMCard primary key,
...
)

alter table Customer add constraint fkCustomer_ATMCardNumber FOREIGN KEY(cATMCardNumber) references ATMCard(cATMCardNumber)

日常业务中客户开户挂卡,信用卡的中的卡号因作为主关键字,而是客户信息表中的卡号作为外部关键字,因为客户可能挂卡可能不挂卡,所以因写成mfcprogrammer给出的格式
谢谢大家
mfcprogrammer 2003-09-23
  • 打赏
  • 举报
回复

create table Department
(
cDepartmentID char(4) constraint pkDepartment primary key,
vDepartmentName varchar(20),
vDepartmentHead varchar(20),
vLocation varchar(200)
)
raiserror('creating Department...',0,1)

create table Employee
(
cEmployeeID char(4) constraint pkEmployee primary key,
vEmployeeName varchar(20),
vEmployeeAddress varchar(200),
vEmployeePhone varchar(15) constraint ckEmployee check(vEmployeePhone like('([0-9][0-9][0-9][0-9])-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cGender char(1),
dDateOfBirth datetime,
cDepartmentID char(4) constraint fkEmployee references Department(cDepartmentID),
vRole varchar(20),
vRemarks varchar(200)
)
raiserror('creating Employee...',0,1)

create table Operator
(
cLoginID char(4) constraint pkOperator primary key,
cEmployeeID char(4) constraint fkOperator references Employee(cEmployeeID),
vPassword varchar(20),
cPermission char(1)
)
raiserror('creating Operator...',0,1)

create table AccountType
(
cAccountTypeID char(4) constraint pkAccountType primary key,
vAccountTypeName varchar(20),
vDescription varchar(100),
mMinimumBalance money,
fRate float,
iLength int
)
raiserror('creating AccountType...',0,1)

create table Customer
(
cCustomerID char(10),
vCustomerName varchar(20),
vCustomerAddress varchar(200),
dDateOfBirth datetime,
vCustomerPhone varchar(15) constraint ckCustomer_CustomerPhone check(vCustomerPhone like('([0-9][0-9][0-9][0-9])-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cGender char(1),
vEmail varchar(50),
vPicture varchar(200),
cIDCardNo char(15)constraint ckCustomer_IDCardNo check(cIDCardNo like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cAccountNumber char(19) constraint pkAccount primary key,
cAccountTypeID char(4) constraint fkCustomer_AccountTypeID references AccountType(cAccountTypeID),
cAccessCode char(6),
mAccountBalance money,
cATMCardNumber char(16),
dAccountOpenedDate datetime,
dAccountExpiryDate datetime,
cLoginID char(4) constraint fkCustomer_LoginID references Operator(cLoginID)
)
raiserror('creating Customer...',0,1)

create table ATMCard
(
cATMCardNumber char(16) constraint pkATMCard primary key,
cAccountNumber char(19) constraint fkATMCard_AccountNumber references Customer(cAccountNumber),
cATMAccessCode char(6),
dCardOpenedDate datetime,
dCardExpiryDate datetime,
vRemarks varchar(200),
cLoginID char(4) constraint fkATMCard_LoginID references Operator(cLoginID)
)
raiserror('creating ATMCard...',0,1)

alter table Customer add constraint fkCustomer_ATMCardNumber FOREIGN KEY(cATMCardNumber) references ATMCard(cATMCardNumber)

create table CheckBookDetails
(
vCheckBookNumber varchar(20) constraint pkCheckBookDetails primary key,
cAccountNumber char(19) constraint fkCheckBookDetails_AccountNumber references Customer(cAccountNumber),
dDateIssued datetime,
vStartNumber varchar(20),
vEndNumber varchar(20),
dCheckBookOpenedDate datetime,
dCheckBookExpiryDate datetime,
vRemarks varchar(200),
cLoginID char(4) constraint fkCheckBookDetails_LoginID references Operator(cLoginID)
)
raiserror('creating CheckBookDetails...',0,1)

create table TransactionsOfAccount
(
iTransactionID int constraint pkTransaction primary key,
dTransactionDate datetime,
vTransactionType varchar(10),
vTransactionMode varchar(10),
vCheckBookNumber varchar(20) constraint fkTransactionsOfAccount_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
cATMCardNumber char(16) constraint fkTransactionsOfAccount_ATMCardNumber references ATMCard(cATMCardNumber),
cAccountNumber char(19) constraint fkTransactionsOfAccount_AccountNumber references Customer(cAccountNumber),
mDebitWithdrawal money,
mCreditDeposit money,
mBalance money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionsOfAccount_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionsOfAccount...',0,1)

create table TransactionOfCheckBook
(
iTransactionID int constraint pkTransactionOfCheckBook primary key,
dTransactionDate datetime,
vTransactionType varchar(10),
vTransactionMode varchar(10),
cAccountNumber char(19) constraint fkTransactionOfCheckBook_AccountNumber references Customer(cAccountNumber),
vCheckBookNumber varchar(20) constraint fkTransactionOfCheckBook_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
mAmount money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionOfCheckBook_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionOfCheckBook...',0,1)

create table TransactionOfATMCard
(
iTransactionID int constraint pkTransactionOfATMCard primary key,
dTransactionDate datetime,
vTransactionMode varchar(10),
vTransactionType varchar(10),
vCheckBookNumber varchar(20) constraint fkTransactionOfATMCard_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
cAccountNumber char(19) constraint fkTransactionOfATMCard_AccountNumber references Customer(cAccountNumber),
cATMCardNumber char(16) constraint fkTransactionOfATMCard_ATMCardNumber references ATMCard(cATMCardNumber),
mDebitWithdrawal money,
mCreditDeposit money,
mBalance money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionOfATMCard_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionOfATMCard...',0,1)
welyngj 2003-09-23
  • 打赏
  • 举报
回复
在customer表列cATMCardNumber没有定义为主键或unique key.
pengdali 2003-09-23
  • 打赏
  • 举报
回复
create table Department
(
cDepartmentID char(4) constraint pkDepartment primary key,
vDepartmentName varchar(20),
vDepartmentHead varchar(20),
vLocation varchar(200)
)
raiserror('creating Department...',0,1)

create table Employee
(
cEmployeeID char(4) constraint pkEmployee primary key,
vEmployeeName varchar(20),
vEmployeeAddress varchar(200),
vEmployeePhone varchar(15) constraint ckEmployee check(vEmployeePhone like('([0-9][0-9][0-9][0-9])-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cGender char(1),
dDateOfBirth datetime,
cDepartmentID char(4) constraint fkEmployee references Department(cDepartmentID),
vRole varchar(20),
vRemarks varchar(200)
)
raiserror('creating Employee...',0,1)

create table Operator
(
cLoginID char(4) constraint pkOperator primary key,
cEmployeeID char(4) constraint fkOperator references Employee(cEmployeeID),
vPassword varchar(20),
cPermission char(1)
)
raiserror('creating Operator...',0,1)

create table AccountType
(
cAccountTypeID char(4) constraint pkAccountType primary key,
vAccountTypeName varchar(20),
vDescription varchar(100),
mMinimumBalance money,
fRate float,
iLength int
)
raiserror('creating AccountType...',0,1)

create table Customer
(
cCustomerID char(10),
vCustomerName varchar(20),
vCustomerAddress varchar(200),
dDateOfBirth datetime,
vCustomerPhone varchar(15) constraint ckCustomer_CustomerPhone check(vCustomerPhone like('([0-9][0-9][0-9][0-9])-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cGender char(1),
vEmail varchar(50),
vPicture varchar(200),
cIDCardNo char(15)constraint ckCustomer_IDCardNo check(cIDCardNo like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),
cAccountNumber char(19) constraint pkAccount primary key,
cAccountTypeID char(4) constraint fkCustomer_AccountTypeID references AccountType(cAccountTypeID),
cAccessCode char(6),
mAccountBalance money,
cATMCardNumber char(16),
dAccountOpenedDate datetime,
dAccountExpiryDate datetime,
cLoginID char(4) constraint fkCustomer_LoginID references Operator(cLoginID)
)
raiserror('creating Customer...',0,1)

create table ATMCard
(
cATMCardNumber char(16) constraint fkATMCard_ATMCardNumber references Customer(cATMCardNumber),
cAccountNumber char(19) constraint fkATMCard_AccountNumber references Customer(cAccountNumber),
cATMAccessCode char(6),
dCardOpenedDate datetime,
dCardExpiryDate datetime,
vRemarks varchar(200),
cLoginID char(4) constraint fkATMCard_LoginID references Operator(cLoginID),
constraint pkATMCard primary key(cATMCardNumber)
)
raiserror('creating ATMCard...',0,1)

create table CheckBookDetails
(
vCheckBookNumber varchar(20) ,
cAccountNumber char(19) constraint fkCheckBookDetails_AccountNumber references Customer(cAccountNumber),
dDateIssued datetime,
cStartNumber varchar(20),
cEndNumber varchar(20),
dCheckBookOpenedDate datetime,
dCheckBookExpiryDate datetime,
vRemarks varchar(200),
cLoginID char(4) constraint fkCheckBookDetails_LoginID references Operator(cLoginID),
primary key(vCheckBookNumber,cAccountNumber)
)
raiserror('creating CheckBookDetails...',0,1)

create table TransactionsOfAccount
(
iTransactionID int constraint pkTransaction primary key,
dTransactionDate datetime,
vTransactionType varchar(10),
vTransactionMode varchar(10),
vCheckBookNumber varchar(20) constraint fkTransactionsOfAccount_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
cATMCardNumber char(16) constraint fkTransactionsOfAccount_ATMCardNumber references Customer(cATMCardNumber),
cAccountNumber varchar(19) constraint fkTransactionsOfAccount_AccountNumber references Customer(cAccountNumber),
mDebitWithdrawal money,
mCreditDeposit money,
mBalance money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionsOfAccount_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionsOfAccount...',0,1)

create table TransactionOfCheckBook
(
iTransactionID int constraint pkTransactionOfCheckBook primary key,
dTransactionDate datetime,
vTransactionType varchar(10),
vTransactionMode varchar(10),
cAccountNumber char(19) constraint fkTransactionOfCheckBook_AccountNumber references Customer(cAccountNumber),
vCheckBookNumber varchar(20) constraint fkTransactionOfCheckBook_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
mAmount money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionOfCheckBook_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionOfCheckBook...',0,1)

create table TransactionOfATMCard
(
iTransactionID int constraint pkTransactionOfATMCard primary key,
dTransactionDate datetime,
vTransactionMode varchar(10),
vTransactionType varchar(10),
vCheckBookNumber varchar(20) constraint fkTransactionOfATMCard_CheckBookNumber references CheckBookDetails(vCheckBookNumber),
vCheckNumber varchar(20),
cAccountNumber char(19) constraint fkTransactionOfATMCard_AccountNumber references Customer(cAccountNumber),
cATMCardNumber char(16) constraint fkTransactionOfATMCard_ATMCardNumber references Customer(cATMCardNumber),
mDebitWithdrawal money,
mCreditDeposit money,
mBalance money,
vInstructions varchar(100),
cLoginID char(4) constraint fkTransactionOfATMCard_LoginID references Operator(cLoginID)
)
raiserror('creating TransactionOfATMCard...',0,1)
txlicenhe 2003-09-23
  • 打赏
  • 举报
回复
constraint fkATMCard_ATMCardNumber references Customer(cATMCardNumber)

必须先在Customer表中将cATMCardNumber设为主键或候选键。
hdslah 2003-09-23
  • 打赏
  • 举报
回复
up

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧