Questions tagged «sql-server»

所有版本的Microsoft SQL Server(非MySQL)。还请添加特定于版本的标记,例如sql-server-2016,因为它通常与问题相关。

5
如何使SSMS大写关键字
我最近使用Management Studio 2012在使用MySQL工作台开始,一个方便的功能是,我可以留在所有情况下和任何保留字(如SELECT,INSERT)将自动转换为大写。如何在SSMS中复制此行为?

1
动态端口什么时候“动态”?
我今天正在Dynamic Ports与一位同事进行讨论,可以用一些帮助来阐明他们的工作方式。 第一个问题:如果IPALL TCP Dynmaic Ports设置为特定数字(例如1971),是否表示您有1971的静态端口或当前为1971的动态端口,并且将来可能会更改。 第二个问题:这是我最好奇的问题。IPALL TCP Dynmaic Ports通过数十次实例重新启动,我们有一个拥有多年相同端口(设置中的值)的实例。是什么导致实例实例重新启动后动态端口实际发生更改?

6
缩小日志文件不会减小大小
我有一个数据库,该数据库具有350 MB数据文件(.mdf)和4.9 GB日志文件(.ldf)。恢复模型设置为FULL。 当我尝试收缩日志文件时,它没有收缩。 我知道收缩数据库是不好的,不应该这样做。但是我仍然在尝试缩小日志文件。 我跑的时候 DBCC SQLPerf(logspace) 我发现日志大小为4932 MB,使用的日志空间为98.76%! 然后我尝试了这个命令 USE <databasename>; DBCC loginfo; 现在几乎所有的VLF均为“状态2”,这意味着所有VLF都在使用中。 我尝试进行日志备份,然后缩小日志文件。缩小并没有减小尺寸。 我将恢复模型更改为SIMPLE并尝试再次缩小,但这也无济于事。 我检查了未结交易 DBCC opentran (database); 并发现现在没有任何交易打开。 是什么阻止了我缩小日志文件?我该如何解决?

1
如何强制SQL Server Management Studio更新IntelliSense缓存?
除非我关闭并重新启动,否则SSMS中的IntelliSense不会更新。我曾尝试从服务器断开连接,然后在SSMS会话处于活动状态时重新连接,但这不起作用。 重建步骤: 建立表格 从该表中选择某项 SSMS在其下方显示波浪状的红线,并显示提示“无效的对象名称” 执行查询 如何在不重新启动SSMS的情况下强制IntelliSense更新?

8
用户登录失败-错误18456-严重级别14,状态38
SQL Server日志文件查看器显示的消息: Login failed for user [User] Error: 18456, Severity: 14, State 38 实际上是什么意思: Failed to open the explicitly specified database 我的问题: 在严重性和状态的每种组合中,是否都列出了18456错误(登录失败)的所有变化形式,以及有用的描述文字? 我有一个Google,但是除了特定的组合之外找不到其他东西。

1
向用户授予SQL Server SHOWPLAN权限有任何风险吗?
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 我正在对大型SQL Server 2008数据库进行性能调整,并且IT小组不愿意授予SHOWPLAN权限。过去,“显示执行计划”一直是了解单个查询和过程的性能的最有效方法。 授予此许可有哪些固有风险?对数据库的开发副本进行此限制是否有合理的理由? 注意:该SQL IT组在一个SQL Server实例下有200多个数据库。谢谢。 答:我认为缺乏响应是指除以下所述之外,没有重大的安全风险。基本上,将其限制在开发数据库上会适得其反。 如果有人想出更好的答案,我将进行更新。感谢您的意见!

3
证明在每个查询中不使用(nolock)提示
您是否曾经有过不使用查询提示的理由? 我WITH (NOLOCK)在每一个查询中都看到一个非常繁忙的服务器。关键是,开发人员认为默认情况下应该启用它,因为他们讨厌在代码中看到它数千次。 我试图解释说,这将允许脏读,最终它们将得到错误的数据,但是他们认为性能的折衷是值得的。(他们的数据库是一团糟;难怪他们会遇到性能问题。) 如果您有一个明确的示例,说明如何针对这种滥用NOLOCK提示的情况进行陈述,那将不胜感激。

3
找出导致最大网络流量的查询
在生产型SQL Server上,我看到数据流量间歇性地急剧增加。高达200Mbit / s的速度导致NETWORK IO等待,进而导致查询超时。我如何找出哪些查询返回大结果集?
23 sql-server 

3
SQL Server在恢复中显示数据库
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 如今,电源故障后,一个数据库(恢复:完整)在SSMS中显示“正在恢复”。所以: myDatabase(恢复中)(数据库状态:恢复,关闭) 完成后,“恢复过程”数据库将显示名称myDatabase,而不显示“(恢复中)”。我以为问题已解决,但事实并非如此。 当我启动使用该数据库的应用程序时,额外的文本“(正在恢复)”再次出现在数据库名称旁边。 我一直等到“恢复过程”完成,然后将数据库脱机并恢复在线。 我重新启动服务器,重新启动计算机,当我的应用程序运行时,多余的文本再次出现。在SQL Server日志中,消息“正在启动数据库'myDatabase'”出现几次。该数据库似乎正在运行,因为我可以插入数据,但是状态表明发生了某些事情。 服务器日志未显示任何有趣的内容。唯一的异常是我有30条“正在启动数据库'myDatabase'”。 我知道服务器启动时,每个数据库在准备使用之前都要经过恢复。但是在我的情况下,数据库联机然后显示“ myDatabase(正在恢复)”。如果我关闭该应用程序,数据库将进入状态:正常。这真让我抓狂。 我什至安装了SQL Server的新实例,并将旧数据库“ myDatabase”放在上面。问题仍然存在。 当我运行此查询时: SELECT databasepropertyex('nyDatabase', 'STATUS') 它显示了正在恢复,在线,可疑以及返回到在线然后恢复等。

5
将文章添加到事务发布中,而不会生成新快照
将SQL 2008 R2事务复制与请求订阅者一起使用时,添加文章时,我希望避免创建整个快照(数据库约为80 GB,因此需要花费数小时)。 从本文开始,我已经了解了如何通过关闭Instant_sync来使用部分快照来执行此操作,但这对我们不起作用。 理想情况下,我想将其作为数据库脚本的一部分来运行以创建表,因此,如果要复制它,可以这样做: Create Table ... sp_addArticle ... sp_PushThisToOurSubscribersNow

1
如何将SQL Server Unicode / NVARCHAR字符串设置为表情符号或补充字符?
我想根据其Unicode代码点将Unicode字符串变量设置为特定字符。 我想使用65535以上的代码点,但是SQL Server 2008 R2数据库的排序规则为SQL_Latin1_General_CP1_CI_AS。 根据Microsoft的NCHAR文档,该NCHAR函数采用一个整数,如下所示: integer_expression 当数据库的排序规则不包含补充字符(SC)标志时,这是一个从0到65535(0到0xFFFF)的正整数。如果指定的值超出此范围,则返回NULL。有关补充字符的更多信息,请参见排序规则和Unicode支持。 当数据库的排序规则支持补充字符(SC)标志时,这是一个从0到1114111(从0到0x10FFFF)的正整数。如果指定的值超出此范围,则返回NULL。 所以这段代码: SELECT NCHAR(128512); NULL在此数据库中返回。 我希望它返回与此相同的内容: SELECT N'😀'; 在排序规则“不包含补充字符(SC)标志”的数据库中,如何使用代码(不使用实际的表情符号字符)将Unicode字符串变量(例如nvarchar)设置为表情符号? 表情符号Unicode代码点的完整列表 (最终,我希望任何角色都能正常工作。为了方便参考,我只是选择了表情符号。) (尽管服务器是SQL Server 2008 R2,但我也对以后版本的任何解决方案感到好奇。) 假设没有办法,是否可以在另一个具有适当排序规则的数据库中引用内联用户定义函数? 如何找到带有“ supplementary character”标志的排序规则? 这不会在我们的服务器上返回任何记录: SELECT * FROM sys.fn_helpcollations() WHERE name LIKE 'SQL%[_]SC'; 似乎引入了SQL Server 2012 Latin1_General_100_CI_AS_SC可以正常工作。您可以在较旧的实例上安装排序规则吗? 整理参考: 在SQL Server中,char,nchar,varchar和nvarchar有什么区别? Microsoft的补充字符归类信息 Microsoft的SQL Server 2008 R2排序规则列表 是否有解释说明为什么SQL Server不管排序规则如何都可以理解和处理扩展字符(除了从角度来看之外)NCHAR?

1
为什么0等于空字符串?
我需要一些帮助来查找为什么以下T-SQL语句返回1(true): SELECT IIF( 0 = '', 1, 0) 我猜有人更改了ANSI选项SET ANSI_NULLS或其他导致行为的选项。 我的问题是我要加入一些值,而在最后一行中,我有由0和''值相连的值,这是不正确的。

4
要安全地重新启动承载Microsoft SQL Server的计算机,必须执行哪些步骤?
重新启动承载MS SQL Server实例的服务器时,是否有必要采取特殊步骤来防止数据损坏? 例如,最近我遇到了手动停止SQL服务的建议。我的理解是,这是由Windows shutdown进程处理的。 我敢肯定,就像我刚才提到的那样,每个人都可以推荐不计其数的步骤,但是我想避免重复过时或迷信的做法。是否有Microsoft的建议或广泛的行业标准? 此问题与重新启动计算机的短期过程有关。还有一个长期问题,那就是在永久性关闭机器之前,确保机器不被使用的长期程序。

7
列出给定角色的所有权限?
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 6年前。 我到处搜索,还没有找到这个问题的最终答案。 我需要一个可以为关联角色提供所有权限的脚本。 有什么想法,甚至有可能吗? 这让我很接近-但我似乎无法将其翻转并给出角色而不是用户的摘要。 http://consultingblogs.emc.com/jamiethomson/archive/2007/02/09/SQL-Server-2005_3A00_-View-all-permissions--_2800_2_2900_.aspx WITH perms_cte as ( select USER_NAME(p.grantee_principal_id) AS principal_name, dp.principal_id, dp.type_desc AS principal_type_desc, p.class_desc, OBJECT_NAME(p.major_id) AS object_name, p.permission_name, p.state_desc AS permission_state_desc from sys.database_permissions p inner JOIN sys.database_principals dp on p.grantee_principal_id = dp.principal_id ) --role members SELECT rm.member_principal_name, rm.principal_type_desc, …

2
子查询的别名与主查询的别名相同
我有一个别名与其子查询别名相同的SQL查询。 例如: select * from ROOM r where ... ( select * from ROAD r where ... ) 这很好用,因为子查询的别名似乎隐藏了主查询的别名。 在所有情况下都可以那样工作吗? 我会得到不确定的结果吗? 如果可以的话,如何引用主查询r呢?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.