Articles of sql server

SQL Server – 列出没有主键的所有表

是否有可能产生一个指定的数据库中没有主键的所有表的列表? 这是SQL Server 2005。

Hyper V故障转移群集上的SQL群集

我们有一个在6个节点的刀片集群上运行SQL Server的虚拟机。 VM的数据文件存储使用直接iSCSI连接连接的SAN。 由于这个SQL服务器将运行许多重要的数据库,我们正在讨论是否应该对SQL Server进行集群化,或者在集群中运行的虚拟机足以提供高可用性。 我习惯于在处理物理服务器时运行SQL集群,但是当所有服务器都只是位于Hyper V上的虚拟机时,最好的做法是什么? 如果运行虚拟机的刀片服务器出现故障,我认为虚拟机将在另一个负载上启动。 我猜测,将SQL集群添加到安装程序的唯一好处是可以使失败后的恢复时间更快一些。 还有其他好处吗?

如何诊断重复“启动数据库”<dbname>'“

我有一个主要用作开发服务器的SQL 2008服务器,在过去的两周里它偶尔有“合适的”,我已经隔离了这些合适的原因,因为CHECKDB几乎是连续运行的,下面的日志信息被logging到Windows事件日志(来源:MSSQLSERVER,类别:服务器): 事件:1073758961,消息:启动数据库'DBName1'。 事件:1073758961,消息:启动数据库“DBName2”。 事件:1073759397,消息:数据库'DBName1'的CHECKDB在2010-07-19 20:29:26.993(当地时间)完成时没有错误。 这只是一个信息性的消息; 无需用户操作。 事件:1073759397,消息:数据库'DBName1'的CHECKDB在2010-07-19 20:29:26.993(当地时间)完成时没有错误。 这只是一个信息性的消息; 无需用户操作。 这是重复每隔1-2秒,直到SQL Server重新启动或有问题的数据库被分开。 我最初以为这是数据库的问题,所以我做了一个备份并将它们恢复到SQL Express实例,所有的数据都完好无损,CHECKDB运行没有问题。 上周造成问题的两个数据库没有被使用, 所以我对它们进行了完整备份并分离了数据库,这解决了这个问题。 然而,今天早上格林威治时间01:00到其他完全无关的数据库开始显示相同的问题。 事件日志中没有任何内容表明服务器发生了重启等情况,没有关于进程崩溃或存储控制器检测到问题的消息。 对于公司老板来说,这台电脑过去曾遭遇过“小灰烬”,但是他们提出了build议,更换了主板,重build了计算机,内存和处理器都是一样的。 统计: O / S :Windows 2008 Standard Build 6002 CPU :2个奔腾双核E5200 @ 2.5GHz 内存 :2GB SQL :2008 Standard 10.0.2531 编辑:有人发布,然后删除了一个关于AutoClose的评论,它在受影响的数据库上打开。 最好的做法似乎是禁用它,所以我已经做到了这一点。 EXECUTE sp_MSforeachdb 'IF (''?'' NOT IN (''master'', ''tempdb'', ''msdb'', ''model'')) EXECUTE (''ALTER DATABASE […]

连接到Sql-Server时密码是否清晰发送?

今天我被问到了这个问题,我真的不知道答案。 如果你使用连接string而不使用sspi连接到服务器,那么第三方可以通过任何方式拦截用于login的密码? "Data Source=MyServer;Initial Catalog=MyDatabase;User Id=sa;Password=CanThisBeSniffed;" 我并不是要求MiTM攻击只是在同一台计算机上,或者在networking上的同一个集线器上使用wireshark或类似的方式运行。 我自己解雇了Wireshark,并没有以纯文本的方式看到它,但它可能是一个简单的混淆或适当的encryption,我只是想知道哪一个。

将表格存储在内存中

有没有办法让SQL Server在内存中存储一​​个具有10个属性和10行的表? a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 —————————————- 138 498 365 345 500 473 498 125 134 800 448 498 362 348 500 463 498 625 165 700 468 498 625 329 500 435 498 625 345 600 437 701 365 326 500 453 498 625 645 500 438 498 […]

SQL Server开发人员版与SQL Server标准版

不知道我明白这一点,但我会把我的设想放在那里: SQL Server 2008 Standard&Enterprise版本用于在服务器上运行完整的数据库服务(不仅仅是为了比较), 和SQL Server开发版是什么,围绕SQL Server开发程序的IDE? 不知道我明白吗?

如果日志被截断,为什么使用完全恢复?

我们每晚都进行完整备份和中午差异备份。 我们在SQL Server 2005中使用完全恢复模式,但是在完全备份之后,日志从不会被备份并被截断(TRUNCATE_ONLY)。 恢复到一个时间点是不是一个要求,恢复到夜间或中午备份之一是足够的(不是我的决定)。 所以现在的问题是,由于他们每天晚上都扔掉日志,是否有任何理由不使用简单恢复模式? 如果我们每天晚上都丢出日志,使用完全恢复模式是否有好处? 谢谢。

收缩SQL Server数据文件,但不是一次全部?

我有一个数据库文件,目前是150GB,但只有75GB正在使用 – 这是因为我把所有的索引(其他75GB)移动到一个新的数据文件。 我想从这个数据文件中至less回收一部分空间,但是当我试图缩小文件时,它会无限期地“执行”,最终会因为networking中断或其他我不能控制的内容而被取消一天运行)。 即使使用“缩小到特定的大小”function,并指定它只是修剪10MB从来没有似乎返回 – 它只是坐直到过程中断。 还有另外一种方法可以回收这个空间,即使是一次一点的收集吗? 编辑:有人张贴链接解释为什么我不应该缩小我的数据库。 我明白了,我想缩小它。 这个服务器上的磁盘空间非常重要,而且数据库在很长一段时间内不会再次扩展到这个未使用的空间中 – 正如我之前所说的,我将索引从数据文件中移出来释放这个空间,所以现在浪费了。

通过“维护计划”进行SQL Server备份的权限问题

我正在使用SQL Server 2012,并且已经创build了一个维护计划来将用户数据库每晚备份到硬盘上的一个文件夹中。 但是,执行此计划时,会出现“访问被拒绝”错误。 以下是详细信息: 我创build了一个维护计划,添加了备份所有用户数据库的“备份数据库任务”任务。 我确认该计划设置为“SQL Server代理服务帐户” 当我转到SQL Serverconfigurationpipe理器并在“login”选项卡下查看SQL Server代理的属性时,它将显示NT Service \ SQLSERVERAGENT作为用于此服务的帐户。 我在硬盘上创build了一个文件夹来存储名为C:\ SQLBackups的这些备份,并完全控制了NT Service \ SQLSERVERAGENT帐户 我在步骤1中configuration了维护计划以存储到C:\ SQLBackups ,为每个数据库创build子文件夹。 当我运行维护计划时,出现以下错误: 执行查询“EXECUTE master.dbo.xp_create_subdir N'C:\ SQLBackup …”失败,出现以下错误:“xp_create_subdir()返回错误5,”访问被拒绝。“。 可能的故障原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确build立。 如果我授予每个人对C:\ SQLBackups文件夹的完全访问权限,那么维护计划将毫无问题地运行。 哪些帐户必须有权访问此文件夹才能使备份生效? 我推测我只需要授予访问NT服务\ SQLSERVERAGENT帐户,但显然这是行不通的。 谢谢

Medialayout无声安装sp1 sql2012

SQL Server 2012 SP1的静默安装失败,并提供如下错误。 有任何想法吗? TITLE:SQL Server安装程序失败。 SQL Server安装程序遇到以下错误: 用于设置“MEDIALAYOUT”的指定值无效。 预期值是: 无Core Advanced Full 错误代码0x84B40001。 有关帮助,请单击: http : //go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&EvtType=0x28498E8E%25400x2841E06E%25401204%25401