すべて、次のクエリがあります
IF NOT EXISTS (SELECT name
FROM sys.databases
WHERE name = N'Report')
BEGIN
DECLARE @DatabasePath NVARCHAR(1000);
SET @DatabasePath = (SELECT ResultMessage + '\'
FROM [Admin]..[Process]);
EXEC ispCREATEDB N'Report', @DatabasePath, N'10MB', N'20%'
END
ELSE
BEGIN
IF EXISTS (SELECT *
FROM Report.sys.objects
WHERE name = N'FatalErrSumm' AND type = N'U')
BEGIN
DROP TABLE [Report]..[FatalErrSumm];
CREATE TABLE [Report]..[FatalErrSumm]
(
[MDF] NVARCHAR(255) NULL,
[Error] INT NULL,
);
END
END
これはReport
、別のデータベースから存在するかどうかを確認します。存在しない場合は作成し、存在する場合はテーブルFatalErrSumm
が存在するかどうかを確認し、存在する場合は削除して再作成します。
IF NOT EXISTS
問題は、ブロックの可能性とエラーの両方を実行しているように見えることです
Msg 2702, Level 16, State 2, Line 24
Database 'Report' does not exist.
データベースReport
が存在しない場合。ELSE
したがって、ブロックに入ることは決してあるべきではありませんが、そうであるようです。これは非常に基本的なことですが、一生エラーを見つけることはできません。ここで何が間違っているのですか?
御時間ありがとうございます。