1

指定された日付パラメータに基づいて新しい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
4

2 に答える 2

2

sp_executesqlを使用して実行する必要があります。

declare @sql nvarchar(4000)
setl @sql = 'ALTER DATABASE MSPLocation ADD FILEGROUP[' + @PartitionName + ']'
exec sp_executesql @sql
于 2010-02-02T10:18:40.897 に答える
0

動的SQLを使用する:

DECLARE @FileGroupName sysname
SET @FileGroupName = 'Foo'

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

ただし、SQLインジェクションについて考えてみてください。

于 2010-02-02T10:20:52.280 に答える