我想编写一个“通用”脚本来操作许多数据库. ‘use databasename’命令将分发在脚本体中.我宁愿在脚本的顶部显示数据库名称信息.理想情况下:
declare @db varchar(100) set @db = 'data_in' use @db
这失败了.也许吧
declare @db varchar(100) set @db = 'data_in' exec ('use '+@db)
这会执行,但可能只在字符串中的查询上下文中更改数据库.
那么有没有其他方法可以将整个脚本放入字符串并以这种方式执行它,即.治愈比疾病更糟糕?
解决方法
查看
SQLCMD中的脚本变量.
这使您可以在表单中将变量放入脚本中:
USE $(db1_name) ...some code... USE $(db2_name) ...some code...
并且从环境变量,运行时提供的参数或硬编码值分配中插入变量值.