SQL:向本地临时声明表中添加关系?

时间:2018-12-17 13:44:28

标签: sql sql-server foreign-keys

这是完整的查询

DECLARE @Customers TABLE(
  Id INT NOT NULL IDENTITY PRIMARY KEY,
  FirstName VARCHAR(255) NOT NULL,
  LastName VARCHAR(255) NOT NULL,
  Salary INT NOT NULL,
  [Middle Name] VARCHAR(255)
)

DECLARE @Books TABLE(
  Id INT NOT NULL IDENTITY PRIMARY KEY,
  Title VARCHAR(255) NOT NULL,
  CustomerId INT NOT NULL,
  CONSTRAINT FK_Books_Customer
    FOREIGN KEY (CustomerId) 
    REFERENCES Customers(Id)
);

尝试运行此查询时出现错误

Incorrect syntax near the keyword 'FOREIGN'.

那么,是否可以将关系添加到局部声明的表变量中?

1 个答案:

答案 0 :(得分:2)

我们无法使用变量表或临时表的引用创建外键。这是因为完成操作后会删除温度/变量。在特殊情况下,当您杀死spid时,则可以允许在临时表中添加外键。在这种情况下,可能需要按特定顺序删除临时表或变量表。