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