我想在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