我想在SQL Server数据库升级期间更改表以添加约束。如何使用变量在SQL Server中指定文件组
该表通常在名为'MY_INDEX'的文件组上编制索引 - 但也可能位于没有此文件组的数据库上。在这种情况下,我希望在'PRIMARY'文件组上完成索引。
我尝试下面的代码来实现这一点:
DECLARE @fgName AS VARCHAR(10)
SET @fgName = CASE WHEN EXISTS(SELECT groupname
FROM sysfilegroups
WHERE groupname = 'MY_INDEX')
THEN QUOTENAME('MY_INDEX')
ELSE QUOTENAME('PRIMARY')
END
ALTER TABLE [dbo].[mytable]
ADD CONSTRAINT [PK_mytable] PRIMARY KEY
(
[myGuid] ASC
)
ON @fgName -- fails: 'incorrect syntax'
然而,因为它出现文件组不能由变量指定的最后一行将失败。
这可能吗?
谢谢,我已经走了,尽管它比解决方案更像是一种解决方法。不知道为什么变量不允许在那里。 – 2010-06-16 00:09:36