正在删除 SSIS 中的 sql 个快照

Deleting sql snapshots in SSIS

我有两个不同的脚本,一个是我创建的,一个是我同事创建的,它们使用相同的快照。

16.00(或下午 4 点)由我编码。 脚本 1 - 删除存在的快照,创建新快照 - 执行代码。

04.00(或凌晨 4 点)由同事编码 脚本 2 - 删除存在的快照,创建新快照 - 执行代码。

这两个脚本都是 SSIS 脚本,只是存储过程的持有者(SSIS 脚本实际上除了执行链中的一堆存储过程外,并没有做更多的事情)。

脚本 2 没有问题。 脚本 1 获取“无法删除快照,您无权访问或数据库中不存在快照”

如果我 运行 在 SQL Studio 中编写脚本 1,它可以完美运行,所以我没有拼写错误。

这两个脚本在 SSIS 引擎和 JOBS 引擎中都运行在同一个用户下。

我什至不知道我应该从哪里开始寻找错误??有什么建议吗?

------------ 编辑:添加了脚本----------------

IF EXISTS(select NULL from sys.databases where name='Citybase_Snapshot')
BEGIN
    DROP DATABASE Citybase_Snapshot;
END

CREATE DATABASE CityBase_Snapshot ON
( NAME = FastighetsBok_Data, FILENAME = 'S:\Snapshots\Citybase_Snapshot.ss' )
AS SNAPSHOT OF Citybase;

---------------- 编辑:添加了错误消息---------------------

据我所知,这是来自 SQL 服务器的正常错误消息。

EXEC proc_..." failed with the following error: "Cannot drop the
database 'Citybase_Snapshot', because it does not exist or you do not
have permission.". 

答案比我想象的要简单。

当您在 SQL 服务器中为 SSIS 作业创建作业时,您在 运行 的 SSIS 脚本上设置了一个活动用户,但这不是您可能拥有安全用户的唯一地方上。

您还需要检查您在 SSIS 脚本中实际建立的连接,以确保允许您用于连接到数据库的用户删除快照。

简单易行(当您知道问题所在时)。