sql-server – 在SQL Server中有任何方法可以让’use database’命令接受变量

我想编写一个“通用”脚本来操作许多数据库. ‘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...

并且从环境变量,运行时提供的参数或硬编码值分配中插入变量值.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...