我有一个包含多个事务复制出版物的大型数据库。每个出版物有 15-20 篇文章。有些订阅是推送的,因此每次将新文章添加到发布时,都必须创建一个新的大快照。为了避免这种情况,我正在考虑为每篇文章创建一个出版物(而不是将文章添加到现有文章中),从而减少对大型快照的需求。我想知道这种方法是否有任何缩小。
Apocatastasis's questions
我正在创建一个脚本来重新创建一个用于测试目的的数据库,并且该数据库有一些出版物。为了创建或不创建 logreader 代理,我需要知道当前数据库是否已经有一个,或者在重新创建数据库之前销毁现有代理。我知道 SMO 中有一些类可以做到这一点,但我需要用 T-SQL 来实现。有人可以帮忙吗?
我在以下场景中工作:我正在创建一个重新创建整个数据库的脚本。该脚本涉及破坏数据库及其所有对象的重建,以及来自链接服务器的大量插入。这个想法是能够随意重新创建数据库,直到开发阶段结束。我的问题是脚本生成高日志活动,很快就会出现 CHECKPOINT。在删除数据库之前,我正在终止脚本中的所有连接,但由于 CHECKPOINT 是一个系统进程,我无法终止它,因此我的脚本失败了。在这个阶段我不需要恢复这个数据库,我的问题是我是否可以禁用这个数据库的日志以避免检查点。
我有以下场景:SQL Server 2012 中的数据库必须以事务方式将更改复制到 SQL Server 2000 数据库。由于两个数据库的模式不同,因此必须对目标进行转换。两个数据库都在同一个网络中。更好的方法是什么?
- 使用源数据库中的触发器进行转换并在目标中执行更改。
使用 SQL Server 事务复制(但据我所知,似乎不可能进行转换)。
有什么选择吗?
给定以下结构 有一种方法可以强制 Table1.id3 只能设置为 Table4.id3 中的值,其中 Table4.id2 = Table1.id2?最初我想在 CHECK 约束中,但不允许子查询。
给定一个只有 IDENTITY 列的表,如何插入新行?我尝试了以下方法:
INSERT INTO TABLE
(Syntax error)
INSERT INTO TABLE VALUES()
(Syntax error)
INSERT INTO TABLE (Id) VALUES()
(Syntax error)
我正在测试一些东西,只需要 IDENTITY 列。这不是为了生产。否则,这样的表可以用作序列生成器,不需要其他列。
我有两个表之间的关系。外键表可以在主表中有行相关。有一种方法可以强制 FK 列的值为 NULL 或主表中 PK 列的值之一?
我有一个包含许多属性的表,这些属性可以按逻辑组进行分组,因此将这些属性放在单独的表中的想法似乎很有吸引力。逻辑组不代表实体本身。设置组中的一个属性后,还必须设置该组中的大多数其余属性(但不是全部)。组的字段类型一般为VARCHAR(15-20)
. 也没有BLOB
或TEXT
字段。
逻辑组不代表子类型,因为它们不是相互排斥的。
实体被要求更多地阅读而不是写作。因此一张大桌子看起来很合适。此外,这种方式在查询中避免了连接。我不喜欢这种方法的部分是大量可为空的字段。
寻求专家建议。