0

我正在尝试创建一个动态 SQL 语句以将数据库设置为单用户模式,以便稍后我可以对其进行还原。我在一个循环中放置了一个执行 SQL 任务,其中一个参数用于提供下一个数据库的名称以设置为单用户模式。但是,我不确定 Execute SQL 是否可以运行 DML 或仅运行 SQL,并且我不确定它是否可以在循环中动态完成。这是我在 SQL Execute 任务中的代码。

DECALRE @SQLString nvarchar(200)

SET @SQLString = 'ALTER DATABASE [' + ? + '] ' + '设置单个用户立即回滚'

执行(@SQLString)

问号是我设置为单用户模式的数据库名称的 OLEDB 占位符。

这是在 SQL2012 上

4

1 回答 1

0

是的,执行 SQL 任务将允许您执行ALTER DATABASE命令以及 DML、DDL 和其他此类语句。听起来您想为此使用 Foreach 循环,并且使用您问题中的 OLE DB 连接语法可以正常工作。正如评论中提到的@Ven,通过将数据库名称作为变量的存储过程来执行此操作将是更可取的方法。

于 2018-10-16T14:22:34.300 回答