0
私はデータベースとパスの名前をパラメータとして受け取り、ディレクトリを作成する次の手順を実行します。ここでの私の問題は、私は、フォルダを上書きするか、それを削除してから新しいものにそのようなことSQL Serverからディレクトリを削除する方法は?
NOTEを行う方法のいずれかのアイデアを作成する必要があります。この手順では、0と1
ALTER PROCEDURE[dbo].[SP_CreateFolder]
@P_PATH VARCHAR(100),
@P_DBName VARCHAR(100)
AS
DECLARE @DBName sysname
DECLARE @DataPath nvarchar(500)
DECLARE @LogPath nvarchar(500)
DECLARE @DirTree TABLE (subdirectory nvarchar(255), depth INT)
-- Initialize variables
SET @DBName = @P_DBName
SET @DataPath = @P_PATH
-- @DataPath values
INSERT INTO @DirTree(subdirectory, depth)
EXEC master.sys.xp_dirtree @DataPath
SELECT * FROM @DirTree
-- Create the @DataPath directory
--IF (SELECT depth from @DirTree)!= 1
--EXEC master.dbo.xp_Delete_file @DBName
IF NOT EXISTS (SELECT 1 FROM @DirTree WHERE subdirectory = @DBName)
BEGIN
EXEC master.dbo.xp_create_subdir @DataPath
END
-- Remove all records from @DirTree
DELETE FROM @DirTree
サイドノート:ストアドプロシージャのプレフィックス 'sp_'を使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です。 –