我在两台 SQL Server 2000 服务器上有旧数据库,我试图使用事务复制将它们复制到 SQL Server 2008 R2 数据库。
2008 服务器不在同一个局域网中,所以我在互联网上进行复制。我创建了别名,以便每个服务器都可以按名称(复制所需)或多或少地按照 MohammedU(和其他人)的描述连接到其他服务器:http : //social.msdn.microsoft.com/forums/en-US/ sqlreplication/thread/9a8cf6b1-a449-4748-b3c2-1c13e2bfcc5b/
唯一的区别是我使用客户端网络实用程序而不是配置管理器在 SS2000 机器上创建别名。这似乎工作正常。
我设置了一台 SS2000 服务器,称为分发服务器,作为两者的分发服务器。我已经成功地在 Distributor 上创建了发布,并使用推送订阅将它们复制到 SS 2008 服务器,称之为订阅服务器。
我现在已经在第二台 SS2000 服务器上设置了发布,将其命名为 Publisher。我以同样的方式为他们创建了推送订阅。这些订阅不起作用。
在分发服务器上的复制监视器中,发布服务器上发布的分发代理具有以下错误消息:
Error message: The process could not connect to Subscriber 'SUBSCRIBER'
Error details: Login failed for user 'SUBSCRIBER\Guest.'
(Source: SUBSCRIBER (Data source); Error number: 18456)
Run Code Online (Sandbox Code Playgroud)
我还尝试在订阅者上创建拉订阅。向导说它们已成功创建,并且相应的分发代理正确显示在分发服务器上的复制监视器中,但复制从未发生。代理一直显示快照不可用的消息,即使它可用。
任何人都可以帮忙吗?
在 SQL Server 中,我可以将数据库还原到具有不同名称的同一实例上。例如:如果有一个数据库 DB_prod,我可以进行完整备份并在同一个实例上使用不同的名称(如 DB_test)恢复它。
Oracle 是否可以完成类似的任务?
我EXPDAT.DMP使用以下命令生成了一个 Oracle 数据库文件:
exp userid=usr/pass@db owner=own rows=n compress=n
Run Code Online (Sandbox Code Playgroud)
然后我运行以下命令来生成一个包含“创建表...”语句的文件:
imp userid=usr/pass@db full=y indexfile=output.sql
Run Code Online (Sandbox Code Playgroud)
这对于 Create Table 语句非常有用,但我也想要 Create Procedure / Create Function / Create View 源代码。我可以在 .DMP 文件中看到它们,但我还没有找到提取它们的方法。
是否可以从 EXPDAT.DMP 文件中提取此信息?或者我需要使用另一种方法吗?
目的是将源代码导出到可以进行源代码控制的文件中。
我最近使用DBCC CHECKDB WITH REPAIR ALOW DATA LOSS.
现在我可以从表值函数中选择记录来检索销售记录,但是对相同数据使用 GROUP BY 会导致“内部不一致”错误。
运行 DBCC CHECKDB 返回零不一致错误。
我已经运行了我所知道的一切来检测任何撕裂的页面,但没有找到。
如何找到撕裂的页面或强制重建?
SQL Server 2008需要在分区上创建唯一的非聚集索引,以在索引定义中包含分区字段。
我想知道为什么。
在参考互联网和教科书时,我遇到了两种规范化程序。即。
类型 1。范式仅基于主键。
在这种类型中,
-> 2NF 不允许部分依赖于主键。
-> 3NF 不允许对主键的传递依赖。
类型 2。基于所有候选键的更通用的范式
在这种类型中,
考虑了所有候选键的部分依赖和传递依赖。
在我提到的大多数网站中,我找到了仅基于第一种类型的教程和注释。但是 Navathe 和 Elmasri 的教科书“数据库系统基础”描述了这两种类型。甚至维基百科关于 2NF 的页面也分别提到了基于第二种类型的“2NF 和候选键”。
但是教科书和维基都没有提到关于哪种类型更好或哪种类型实际上更受欢迎的任何内容。
当没有提到类型时应该遵循哪种类型?希望你明白我的问题。
请帮我解决这些家伙。
我创建了一个视图,该视图从复杂查询中的多个表中进行选择。
当我构建 VS2010 数据库项目时,SQL 脚本包含以下顺序的 CREATE 命令:(1) 视图,(2) 存储过程,然后 (3) 触发器。
现在,当我运行部署脚本时,出现错误:
*** SQL01268 D:\scripts\vs2010\Database.sql (28494,0).Net SqlClient Data Provider:
Msg 4405, Level 16, State 1, Procedure MyViewSave, Line 18 View or function 'MyView' is
not updatable because the modification affects multiple base tables
Run Code Online (Sandbox Code Playgroud)
如果触发器在存储过程之前创建,就没有问题。
如何确保在存储过程之前创建触发器?
谢谢!
visual-studio deployment sql-server-2008-r2 visual-studio-2010
我想到的选项:
一大删除语句。例如:
delete from x where (y = 'x' and x = 'y') or (y = 'a' and x = 'b')
Run Code Online (Sandbox Code Playgroud)和上面一样,但是分成小块,一次 10k?
创建一个存储过程,所以我发送的只是两个查询值。
如果用户从不运行REBUILD或REORGANIZE在他们的数据库上运行,SQL Server 是否仍然以某种方式对索引进行碎片整理?
MSDN 建议,如果索引超过 30% 的碎片,建议运行REBUILD而不是REORGANIZE. REORGANIZE多次运行会做同样的事情REBUILD吗?
我对此感到疑惑,因为我有一个具有高度碎片化索引的客户端。他们REORGANIZE每个周末都运行该索引,随着时间的推移,他们的索引似乎被整理了碎片。
这有意义吗?
我们目前使用混合模式进行 SQL Server 身份验证。我试图说服我们的 DBA 允许我们使用 Windows 身份验证,以便我们可以使用 Team Foundation Server,但是他绝对拒绝让我们拥有它。
根据他的说法,我们不能使用 Windows 身份验证,因为我们计划最终符合 PCI 标准,而 PCI 需要混合模式。从我在网上看到的情况来看,情况恰恰相反:PCI 标准实际上更喜欢 Windows 身份验证而不是混合模式。
有人可以给我一些关于此的更多信息(最好是说明正确信息的 URL),以便我可以将其发送给我们的部门负责人?
sql-server ×5
oracle ×2
dbcc ×1
delete ×1
deployment ×1
export ×1
import ×1
index ×1
maintenance ×1
mysql ×1
partitioning ×1
replication ×1
restore ×1
security ×1
windows ×1