0

我正在尝试将以下查询返回的 TEXT 列中的数据库名称插入另一列,该查询已插入另一个表:

EXEC master..sp_readerrorlog 0,1,"Database backed up. Database:"

返回

数据库已备份。数据库:databaseName,创建日期(时间):2014/06/13(17:49:54),转储页面:197581,第一个 LSN:488:6298:36,最后一个 LSN:488:6314:1,转储设备数:4、设备信息:...

在从这里推荐其他帖子之后,我写道:

SUBSTRING([TEXT], LEN(LEFT([TEXT], CHARINDEX (': ', [TEXT]))) + 1, LEN([TEXT]) - LEN(LEFT([TEXT], 
CHARINDEX (': ', [TEXT]))) - LEN(RIGHT([TEXT], LEN([TEXT]) - CHARINDEX (', ', [TEXT]))) + 1) 
as DatabseName

返回

'DatabaseName',保留逗号

我试图改变两者都CHARINDEX parameter '+1'没有成功。

有人知道如何摆脱那个逗号吗?

4

2 回答 2

1

这条线怎么样?

SUBSTRING([TEXT], CHARINDEX('Database:', [TEXT]) + 10, CHARINDEX('creation date', [TEXT]) - (CHARINDEX('Database:', [TEXT]) + 12))
于 2014-10-30T13:06:28.797 回答
0

总是有一个函数可以用于任何字符串操作。

哦,看看谷歌发现了什么!

http://www.spatialdbadvisor.com/sql_server_blog/136/string-tokenizer-for-sql-server-2008-written-in-tsql/

:)

于 2019-07-18T03:59:24.520 回答