我将一堆表从 SQL Server 2000 导入到我的 2008 数据库中。所有导入的表都以我的用户名作为前缀,例如:erpadmin.tablename。
在表属性中,它列出了 'erpadmin' 作为 db 架构。当我编写查询时,我现在必须包含“erpadmin”。在所有令人困惑的表名前面。
当前结果:
select *
from erpadmin.tablename
Run Code Online (Sandbox Code Playgroud)
想要的结果:
select *
from tablename
Run Code Online (Sandbox Code Playgroud) 我在 SQL Server 2000 上遇到了三个旧数据库,我需要将其迁移到 2012 年。我相信标准方法是恢复到 2005 年或 2008 年的实例,更新、重新导出并最终恢复到 2012 年。
很好,除了我们没有 2005 或 2008 实例可用。
是否有任何可能值得尝试的变通方法或其他方法?
作为参考,数据库只包含 15-20 个表和几个视图,它们看起来非常简单,备份大小只有 100-200MB。
sql-server migration sql-server-2000 restore sql-server-2012
我们运行 SQL Server 2000,每天晚上都会遇到一些这样的错误。
Could not continue scan with NOLOCK due to data movement
Run Code Online (Sandbox Code Playgroud)
引发此错误的查询是一个大型复杂查询,它连接了十多个表。我们的基础数据可以经常更新。
文化“最佳实践”是,在过去,NOLOCK提示的引入提高了性能并改进了并发性。这个查询不需要 100% 准确,即我们会容忍脏读等。然而,我们正在努力理解为什么数据库会抛出这个错误,即使我们有所有这些锁定提示。
任何人都可以对此有所了解 - 温柔一点,我实际上是一名程序员,而不是 DBA :)
PS:我们已经应用了前面提到的修复:http : //support.microsoft.com/kb/815008
我需要在 Windows 10 上安装 SQL Server MSDE 2000 SP4。
我有其他运行 Windows 7 和 8.1 的机器,并且 SQL Server MSDE 2000 工作正常(也配置了合并复制)。
现在我在 Windows 10 上测试了相同的场景,但安装程序在安装过程中意外关闭。
我知道这个版本很旧,但是有没有办法在 Windows 10 上安装它?
测试当前在单用户负载下的应用程序 - 随着测试数据增加到生产大小(每个表 400k-2M 行),一些 SELECT sp 的速度不再足够快(测试数据有限,每个过去 <30 毫秒,现在是 100-200 毫秒,但有几个,所以延迟在 UI 中变得明显)。
我有一个 SQL Server 2000 数据库,我想将其升级到 SQL Server 2012(在不同的服务器上运行)。
我不认为有直接的升级路径,但如果有,那是什么?
我目前的计划是:
100(SQL Server 2008 / SQL Server 2008 R2)110(SQL Server 2012)我在做不需要的步骤吗?我是否遗漏了什么(例如运行实用程序来识别不受支持的 Transact-SQL 的使用情况)?
我在两台 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 2000,很快就会迁移到 SQL Server 2005。它创建了多年的 Windows 身份验证帐户,这些帐户不再存在于 Active Directory 中,这会阻止复制数据库向导在新服务器上创建这些帐户。
是否有脚本或某种自动方法可以删除我们的 Active Directory 中不再存在的帐户?
编辑:需要明确的是,需要删除的登录名是在 SQL Server 2000 上,它不支持该DROP LOGIN命令。
另外,手动删除 SQL Server 2000 中exec sp_droplogin 'loginname'的登录名将(我认为)完成,但在我的,无法找到登录名,无论我使用“域\登录名”还是“登录名”
只是为了增加混乱,exec sp_revokelogin 'domain\loginname'似乎确实有效。
编辑2:终于解决了这个问题。许多有问题的登录以编程方式添加到数据库中,虽然它们在用户可以连接的意义上工作,但当 SQL Server 期望没有域时,用户名与 NT 登录名的域前缀登录不匹配,反之亦然反之。
为了解决这个问题,我修改了 sp_droplogin 过程以删除其中一项出错的检查。
我接受我自己的答案,因为它适用于 SQL Server 2000。
有没有办法确定一个视图是否不再被使用(不删除它们)?
理想情况下,我想知道SQL Server 2000 和 2012的视图用法。
我正在升级一些数据库并怀疑许多视图不再被使用。此外,一些视图将难以在新服务器上编译,因为它们访问多个数据库,其中一些未移动到新服务器。
我想知道是否有一种相当有效的方法来使用 T-SQL 和 SQL Server 2000 语法在特定数据库的所有 TABLES 和 VIEWS 上进行 GRANT SELECT、INSERT、UPDATE、DELETE,同时排除 100 多个对象中的 2 个或 3 个。我还希望能够授予对所有存储过程的 EXEC 权限。
目前我正在使用下面的代码来一一更改它们。为大约 100 个表和 100 个视图执行此操作花费的时间太长,并且通过 GUI 将花费更长的时间(除非我也做错了)。
use [DATABASE_NAME]
GO
GRANT DELETE ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT INSERT ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT SELECT ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT UPDATE ON [dbo].[table_name]TO [user_name]
GO
Run Code Online (Sandbox Code Playgroud)
如何使用 T-SQL 循环遍历所有用户表和视图以授予某些特权,同时排除几个对象?
sql-server-2000 ×10
sql-server ×8
installation ×1
locking ×1
logins ×1
migration ×1
nolock ×1
performance ×1
permissions ×1
replication ×1
restore ×1
security ×1
windows-10 ×1