我正在尝试创建动态SQL语句,以将数据库设置为单用户模式,以便以后可以对其进行还原。我将执行SQL任务放在一个循环中,在循环中,一个参数用于提供要设置为单用户模式的下一个数据库的名称。但是,我不确定Execute SQL是否可以运行DML或仅运行SQL,也不确定是否可以在循环中动态完成所有操作。这是我在SQL Execute任务旁边的代码。
DECALRE @SQLString nvarchar(200)
SET @SQLString = 'ALTER DATABASE ['+? +']'+ “立即设置回滚的单个用户”
EXECUTE(@SQLString)
问号是OLEDB的占位符,代表我要设置为单用户模式的数据库的名称。
这是在SQL2012上
答案 0 :(得分:0)
是的,执行SQL任务将允许您执行ALTER DATABASE
命令以及DML,DDL和其他此类语句。听起来您想为此使用Foreach循环,并且使用问题中的OLE DB连接语法可以正常工作。正如@Ven在评论中提到的那样,通过将数据库名称作为变量的存储过程来执行此操作将是更可取的方法。