オブジェクトが存在するかどうかをチェックしていて、存在する場合はドロップしている場合、オブジェクトが既に存在するというメッセージが表示され続ける理由がわかりません。誰にも手がかりはありますか?
エラーメッセージ:
メッセージ 2714、レベル 16、状態 1、プロシージャ spCreateDirectoryStructure、行 54 データベースには、'#dirs' という名前のオブジェクトが既に存在します。メッセージ 2714、レベル 16、状態 1、プロシージャ spCreateDirectoryStructure、行 74 データベースには、'#dirs' という名前のオブジェクトが既に存在します。
ストアド プロシージャ:
CREATE PROCEDURE spCreateDirectoryStructure
AS
BEGIN
SET NOCOUNT ON;
DECLARE @year CHAR(4)
DECLARE @month VARCHAR(2)
DECLARE @day VARCHAR(2)
DECLARE @root VARCHAR(200)
DECLARE @dir VARCHAR(200)
DECLARE @yearDir VARCHAR(200)
DECLARE @monthDir VARCHAR(200)
DECLARE @dayDir VARCHAR(200)
SET @root = 'C:\Test\'
SET @year = DATEPART(YEAR, GETDATE())
SET @month = DATEPART(MONTH, GETDATE())
SET @day = DATEPART(DAY, GETDATE())
SET @yearDir = @root + @year + '\'
SET @monthDir = @root + @year + '\' + @month + '\'
SET @dayDir = @root + @year + '\' + @month + '\' + @day + '\'
-- check root folder for year folder
IF OBJECT_ID(N'tempdb..#dirs') IS NOT NULL
BEGIN
DROP TABLE #dirs
END
CREATE TABLE #dirs (Directory VARCHAR(200))
INSERT INTO #dirs
EXEC master.dbo.xp_subdirs
@root
IF NOT EXISTS ( SELECT Directory
FROM #dirs
WHERE Directory = @year )
EXEC master.sys.xp_create_subdir
@yearDir
-- **********************************************
-- check year folder for month folder
IF OBJECT_ID(N'tempdb..#dirs') IS NOT NULL
BEGIN
DROP TABLE #dirs
END
CREATE TABLE #dirs (Directory VARCHAR(200))
INSERT INTO #dirs
EXEC master.dbo.xp_subdirs
@yearDir
IF NOT EXISTS ( SELECT Directory
FROM #dirs
WHERE Directory = @month )
EXEC master.sys.xp_create_subdir
@monthDir
-- **********************************************
-- check month folder for day folder
IF OBJECT_ID(N'tempdb..#dirs') IS NOT NULL
BEGIN
DROP TABLE #dirs
END
CREATE TABLE #dirs (Directory VARCHAR(200))
INSERT INTO #dirs
EXEC master.dbo.xp_subdirs
@monthDir
IF NOT EXISTS ( SELECT Directory
FROM #dirs
WHERE Directory = @day )
EXEC master.sys.xp_create_subdir
@dayDir
END
GO