更改表变量以添加主键获取错误语法不正确

时间:2015-06-25 13:33:52

标签: sql sql-server sql-server-2008 primary-key

我希望根据条件将复合主键约束添加到已定义的表变量中:

DECLARE @tbl TABLE(Col1 int, Col2 int)

IF [myCondition] 
    ALTER TABLE  @tbl ADD CONSTRAINT c PRIMARY KEY(Col1)
ELSE 
    ALTER TABLE  @tbl ADD CONSTRAINT c PRIMARY KEY(Col1,Col2)

但是得到:

  

@ tbl'附近的语法不正确。

1 个答案:

答案 0 :(得分:0)

不能在表变量上使用Alter语句。

作为替代方案,请使用临时表:

CREATE TABLE #tbl (Col1 int not null, Col2 int not null)

IF [myCondition] 
    ALTER TABLE  #tbl ADD CONSTRAINT c PRIMARY KEY(Col1)
ELSE 
    ALTER TABLE  #tbl ADD CONSTRAINT c PRIMARY KEY(Col1,Col2)