Я хочу изменить таблицу, чтобы добавить ограничение во время обновления базы данных 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'
Однако последняя строка завершается сбоем, как кажетсяфайловая группа не может быть указана с помощью переменной.
Возможно ли это?