我们有一组数据库(开发、QA 和生产,分别是dev-foo
& dev-bar
、qa-foo
&qa-bar
和 just foo
& bar
)。
在foo
数据库系列中,有一个视图应该使用各自的bar
数据库进行跨数据库连接。换句话说,
select f.*, b.* from foo f inner join <bar-db>.dbo.bar b on f.barid = b.id
Run Code Online (Sandbox Code Playgroud)
问题是:有什么办法可以让我编写一次这个脚本,然后有一个数据库级变量<bar-db>
指向一个适当的bar
数据库“实例” ?
我们有一个奇怪的系统,我们正在与之集成,它使用 XML,但它不理解自闭合标签,所以
<BOOKING>
<BOOKINGID>56812</BOOKINGID>
<PERSONCODE />
</BOOKING>
Run Code Online (Sandbox Code Playgroud)
超出了它的能力。
如果我拥有的是declare @x xml
,我如何将其转换@x
为字符串而没有自关闭标签:
<BOOKING>
<BOOKINGID>56812</BOOKINGID>
<PERSONCODE></PERSONCODE>
</BOOKING>
Run Code Online (Sandbox Code Playgroud) 我想要做的是备份我们的生产数据库之一并将它们恢复为我们的开发数据库(覆盖那里的内容)。
这就是我备份的方式:
backup database [authfx] to disk = N'f:\db_backups\authfx\authfx-latest.bak'
with
noformat,
init,
name = N'authfx Latest Full Database Backup',
skip,
norewind,
nounload,
stats = 1;
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试恢复其他使用数据库
restore database [dev-authfx] from disk = N'f:\db_backups\authfx\authfx-latest.bak'
with
file = 1,
nounload,
replace,
stats = 1;
Run Code Online (Sandbox Code Playgroud)
它到处吠叫:
Msg 1834, Level 16, State 1, Line 10
The file 'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\authfx.mdf' cannot be overwritten. It is being used by database 'authfx'.
Msg 3156, Level 16, State 4, Line 10
File 'authfx' cannot …
Run Code Online (Sandbox Code Playgroud)