所有,我有以下查询
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
街区,但它似乎是。这是非常基本的东西,但我一生都无法发现错误,我在这里做错了什么?
谢谢你的时间。