相关疑难解决方法(0)

STRING_SPLIT 带有多字符分隔符?

SQL Server 2016 引入了STRING_SPLIT,它非常快,是人们在 2016 年之前推出的任何自制实现的绝佳替代品。

不幸的是,STRING_SPLIT 只支持单字符分隔符,这并不总是足够的。有谁知道允许在分隔符中使用多个字符的良好实现?

sql-server t-sql sql-server-2016 string-manipulation

11
推荐指数
1
解决办法
1万
查看次数

如何在sqlcmd中输出超过4000个字符

我制作了一个存储过程restoredatabase,它返回代码来恢复数据库。输出脚本如下所示:

restore database [DB]  from disk='F:\FULL1.bak' with norecovery
restore database [DB]  from disk='F:\DIFF1.bak' with norecovery
restore log [DB]  from disk='F:\log1.bak' with norecovery
restore log [DB]  from disk='F:\log2.bak' with norecovery
...
restore log [DB]  from disk='F:\logN.bak' with norecovery
restore database [DB] with recovery
Run Code Online (Sandbox Code Playgroud)

在整个 SP 中,这些行被添加到一个参数@sql varchar(max)中,该参数最后以 打印print(@sql),如果用户指定了正确的标志,则以exec(@sql). 两者都完美地工作。但是,当像这样使用 sqlcmd 调用 SP 时:

set restoresql=exec restoredatabase @DB='Databasename', @Execute='y'
sqlcmd -h-1 -S SRV\T2 -U sa -P sa -d master -Q "%restoresql%" -o output.txt
Run Code Online (Sandbox Code Playgroud)

输出文件 …

sql-server stored-procedures sql-server-2008-r2 recovery sqlcmd

8
推荐指数
1
解决办法
1万
查看次数