小编RDF*_*ozz的帖子

如何从导出的数据在 MS SQL Server 2016 中完全重新创建数据库

最近,我的 ~40Gb 数据库中经常出现许多一致性错误。当然,我使用DBCC CHECKDB, 即使REPAIR_ALLOW_DATA_LOSS(当它询问时),但是我再次遇到错误,即使在只读操作之后也是如此。

数据库本身存储在 SSD 驱动器上,这没问题,所以我怀疑数据库文件中存在一些隐藏的错误。

所以,完整的周期:我在本地 PC 上安装了 MSSQL 2016,只连接了 1 个用户。每天我都以自定义格式获取数据(~1.5M 记录),备份基础并将数据插入基础(非批量插入,索引)。在那次行动中,没有人接触基地。后来我不时进行高负载查询(不同的统计数据)。我经常遇到一致性错误、校验和错误、索引错误(目前没有存储确切的输出)。可以通过重建索引来纠正索引错误;其他人只能通过DBCC CHECKDB使用该REPAIR_ALLOW_DATA_LOSS选项来修复。之后,它再次工作 - 一段时间。

我不相信问题出在我的 SSD 驱动器上。在过去的几年里,我在这台 PC 上尝试了不同的驱动器,行为没有改变。

我怀疑,即使在DBCC CHECKDB成功运行后,文件结构中也存在一些隐藏的错误,这些错误会导致以后出现新的错误。所以我只想将数据提取到线性文件然后导入。标准导出向导导出数百行,然后停止没有错误。

是否有一种正确且可靠的方法可以将整个数据库导出到文本/二进制文件(但不是 mssql),然后重新创建数据库而不会丢失这些文件中的数据?我尝试了备份还原,但看起来数据库一致性问题在还原过程中仍然存在。

sql-server backup restore

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

游标和触发器有什么区别?

我试图理解为什么使用 Cursosr 或者它们是如何工作的(我是新手)。

我真的没有找到使用它的明确目的。

它与触发器相比如何?

mysql mariadb trigger cursors

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

在重新索引时避免表锁定

我们使用的是 PostgreSQL 10,我们需要重新索引表以重新组织数据和可用空间。

我们遇到的问题是此操作锁定了我们需要始终保持可用的表。

我们找到了一个解决方法,但这似乎比标准释放的空间少得多reindex,所以我们将其关闭。

是否有一些解决方案可以让我们重新索引,并使表格始终可用?

postgresql postgresql-10

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

无法让我的 SQL 查询按我想要的日期过滤

我有一个查询,如果日期列有一组日期中的任何一个,我想在其中排除行。

我很难弄清楚如何在不过滤一个月的情况下返回正确的结果集。

我最初的尝试假设运算符 '!=' 能够指定多个变量,但我可能会误会。

如何以删除所有我不想要的指定日期的方式过滤结果?

SELECT * INTO IPS_TransactionDataAll2
FROM
[IPS_TransactionDataAll1]
where Format([Start Date], 'MM/yyyy') != ('07/2016''08/2016''09/2016''10/2016''11/2016''10/2016''01/2017''02/2017''03/2017''04/2017''05/2017''06/2017''07/2017')
Run Code Online (Sandbox Code Playgroud)

伪代码:

从 TableA 中选择到 TableB 其中日期不在 7-11/2016 和 1-7/2017 月份

sql-server format

0
推荐指数
1
解决办法
6823
查看次数

SQL 左连接返回空列

我想LEFT JOIN在两个表上做一个,其中一个表有一个日期时间列,另一个表有一个日期列。当我在 SQL Server 中工作时,我曾经CONVERT将日期时间更改为日期。然后我写了 join 语句:

SELECT CONVERT(date,db1.dbo.table1.datecolumn), db2.dbo.table2.datecolumn
FROM db1.dbo.table1
LEFT JOIN db2.dbo.table2 
    ON db1.dbo.table1.datecolumn = db2.dbo.table2.datecolumn
Run Code Online (Sandbox Code Playgroud)

查询返回 table1 中的日期列,但 table2 中的列仅填充为 NULL 值。我不确定我做错了什么。我尝试CASTCONVERT,而不是,但没有运气。转换有什么事情发生吗?任何帮助表示赞赏。

null join sql-server

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