我创建了以下表格:
CREATE TABLE Warehouse
(
Code INT PRIMARY KEY,
location NVARCHAR(50),
Capacity INT
)
CREATE TABLE Boxes
(
Code NVARCHAR PRIMARY KEY,
contents NVARCHAR(50),
Value REAL,
warehouse INT FOREIGN KEY REFERENCES warehouse(code)
)
现在我尝试使用以下语句更改列Boxes.Code
的长度:
ALTER COLUMN Code NVARCHAR(20) PRIMARY KEY
但是我得到了
ALTER TABLE ALTER COLUMN代码因一个或多个对象而失败 访问此列。
答案 0 :(得分:0)
有几个问题:
所以:这应该有效,但你需要适应它......
try { // Create the input stream.
fileRead = new Scanner(new File("testclass.txt"));
}
catch (FileNotFoundException e) {
System.out.println("Can't find text file");
return; // End the program by returning from main().
}
答案 1 :(得分:0)
您需要删除PK约束,更改列大小,然后重新添加约束(btw命名约束而不是使用系统命名约束使这更容易)。 例如:
ALTER TABLE Boxes DROP CONSTRAINT PK__Boxes__A25C5AA6647CBF9C;
alter table boxes alter column code nvarchar (20) not null;
alter table boxes ADD CONSTRAINT PK__Boxes__A25C5AA6647CBF9C PRIMARY KEY (Code);