Программно назвать FILEGROUP в SQL-сервере? - PullRequest
1 голос
/ 02 февраля 2010

Я пытаюсь написать хранимую процедуру, которая создаст новую FILEGROUP на основе заданного параметра даты. То, что я хочу увидеть, это FILEGROUP, который называется что-то вроде '2010_02_01'. Я получаю FILEGROUP под названием «@PartitionName».

ALTER PROCEDURE [dbo].[SP_CREATE_DATE_FILEGROUP] @PartitionDate DATETIME
AS
DECLARE
    @PartitionName VARCHAR(10);
BEGIN
    SET @PartitionName = REPLACE(LEFT(CONVERT(VARCHAR, @PartitionDate, 120), 10), '-', '_');
    ALTER DATABASE MSPLocation ADD FILEGROUP [@PartitionName];
END

Ответы [ 2 ]

2 голосов
/ 02 февраля 2010

В конечном итоге вам придется использовать sp_executesql для его выполнения, что-то вроде

declare @sql nvarchar(4000)
setl @sql = 'ALTER DATABASE MSPLocation ADD FILEGROUP[' + @PartitionName + ']'
exec sp_executesql @sql
0 голосов
/ 02 февраля 2010

Использовать динамический SQL:

DECLARE @FileGroupName sysname
SET @FileGroupName = 'Foo'

EXEC ('ALTER DATABASE MyDatabase ADD FILEGROUP [' + @FileGroupName + ']')

Впрочем, подумайте о внедрении SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...