我希望根据条件将复合主键约束添加到已定义的表变量中:
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'附近的语法不正确。
答案 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)