小编Sat*_*ish的帖子

SQL Server:从VARCHAR(MAX)字段替换无效的XML字符

我有一个VARCHAR(MAX)字段,它以XML格式连接到外部系统.接口抛出以下错误:

mywebsite.com-2015-0202.xml:413005: parser error : xmlParseCharRef: invalid xmlChar value 29
ne and Luke's family in Santa Fe. You know you have a standing invitation,
                                                                               ^
mywebsite.com-2015-0202.xml:455971: parser error : xmlParseCharRef: invalid xmlChar value 25
The apprentice nodded, because frankly, who hadnt? That diseases like chol
                                                      ^
mywebsite.com.com-2015-0202.xml:456077: parser error : xmlParseCharRef: invalid xmlChar value 28
bon mot; a sentimental love of nature and animals; the proverbial British 
                                                                               ^
mywebsite.com-2015-0202.xml:472073: parser error : xmlParseCharRef: invalid xmlChar …
Run Code Online (Sandbox Code Playgroud)

xml sql t-sql sql-server sql-server-2012

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

SQL server:计算SQL查询中的序列

我在SQL Server 2008R2中有以下四个表:

DECLARE @ParentGroup TABLE (ParentGroup_ID INT, ParentGroup_Name VARCHAR(100));
DECLARE @ChildGroup TABLE (ChildGroup_id INT, ChildGroup_name VARCHAR(100), ParentGroup_id INT);
DECLARE @Entity TABLE ([Entity_id] INT, [Entity_name] VARCHAR(100));
DECLARE @ChildGroupEntity TABLE (ChildGroupEntity_id INT, ChildGroup_id INT, [Entity_ID] INT);
INSERT INTO @parentGroup VALUES (1, 'England'), (2, 'USA');
INSERT INTO @ChildGroup VALUES (10, 'Sussex', 1), (11, 'Essex', 1), (12, 'Middlesex', 1);
INSERT INTO @entity VALUES (100, 'Entity0'),(101, 'Entity1'),(102, 'Entity2'),(103, 'Entity3'),(104, 'Entity4'),(105, 'Entity5'),(106, 'Entity6');
INSERT INTO @ChildGroupEntity VALUES (1000, 10, 100), (1001, 10, 101), (1002, 10, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008 sql-server-2008-r2

6
推荐指数
1
解决办法
136
查看次数

SQL Server 2012:从压缩备份进行备份还原

我正在尝试从backup(.bak)文件中恢复数据库,该文件已[保存]在ZIP文件中,但到目前为止尚未成功.但是,我可以在从ZIP文件中提取后恢复它.

MS页面表示每个版本的SQL Server 2008及更高版本都可以恢复具有以下限制的压缩备份.

限制:以下限制适用于压缩备份:

  1. 压缩和未压缩的备份不能在媒体集中共存.
  2. 以前版本的SQL Server无法读取压缩备份.
  3. NTbackup无法与压缩的SQL Server备份共享磁带.

我不清楚第一个限制.有人可以澄清/详细说明吗?

我已完成以下步骤:

  1. 在暂存SQL Server [ MyTestDB.bak] 上进行备份; 压缩它(通过右键单击>发送到 - 压缩(zipped)文件夹); 现在,将其命名为MyTestDB.ZIP

  2. ZIP文件FTP 到本地开发SQL Server并尝试从ZIP文件中还原它.但是数据库名称不可用于备份.

两个SQL Server版本完全相同.

SQL Server版本:Microsoft SQL Server 2012 - 11.0.5058.0(X64) - 标准版(64位)

尝试从ZIP文件还原时

对ZIP文件中保存的备份文件使用术语"压缩备份"是否正确或是否需要以不同的方式备份,以便将其称为压缩备份?

  1. 但是,如果我从.bak文件中提取文件后选择该文件,ZIP则一切正常.

当试图从.bak文件恢复时

我不知道我哪里出错了?我可以简单地提取备份并恢复它而没有任何问题,但是想知道它为什么不起作用的原因,因为从它ZIP本身备份它本来是一个更好的解决方案.

sql-server sql-server-2012

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

SQL Server:HTML解码基于String输入中的HTML名称

我正在尝试使用下面的SQL 将HTML & "等名称转换为等效CHAR值.我在SQL Server 2012中测试了这个.

测试1(这很好):

GO
DECLARE @inputString VARCHAR(MAX)= '&testString&'
DECLARE @codePos INT, @codeEncoded VARCHAR(7), @startIndex INT, @resultString varchar(max)
SET @resultString = LTRIM(RTRIM(@inputString))
SELECT @startIndex = PATINDEX('%&%', @resultString)
WHILE @startIndex > 0 
BEGIN
    SELECT @resultString = REPLACE(@resultString, '&', '&'), @startIndex=PATINDEX('%&%', @resultString)
END

PRINT @resultString
Go
Run Code Online (Sandbox Code Playgroud)

输出:

&testString&
Run Code Online (Sandbox Code Playgroud)

测试2(这不起作用):由于上述工作,我试图扩展它以处理更多字符如下:

DECLARE @htmlNames TABLE (ID INT IDENTITY(1,1), asciiDecimal INT, htmlName varchar(50))
INSERT INTO @htmlNames
VALUES (34,'"'),(38,'&'),(60,'<'),(62,'>'),(160,' '),(161,'¡'),(162,'¢')
-- I would load the full list of HTML names into this …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

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