Questions tagged «sql-server»

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


4
为什么事务日志持续增长或空间不足?
在大多数论坛和整个网络中,这似乎是一个常见问题,在这里以多种格式询问,通常听起来像这样: 在SQL Server中- 事务日志变得如此之大的一些原因是什么? 为什么我的日志文件这么大? 有什么方法可以防止出现此问题? 当我使自己的潜在原因步入正轨并希望将事务日志文件调整为正常大小时,该怎么办?

18
您如何记录数据库?
我发现我的大多数客户根本没有在记录他们的数据库,而且我觉得这很吓人。为了介绍一些更好的做法,我想知道人们正在使用哪些工具/流程。 您如何记录数据库?(SQL服务器) 您使用什么工具? 数据库架构/元数据的文档存储格式? Word文件 Excel电子表格 纯文本 文件编制流程或政策? 我不是在谈论逆向工程/记录现有数据库,而是主要是在开发系统/数据库时的文档最佳实践。

6
什么时候应该使用唯一约束而不是唯一索引?
当我希望一列具有不同的值时,我可以使用约束 create table t1( id int primary key, code varchar(10) unique NULL ); go 或者我可以使用唯一索引 create table t2( id int primary key, code varchar(10) NULL ); go create unique index I_t2 on t2(code); 具有唯一约束的列似乎是唯一索引的良好候选者。 是否存在使用唯一约束而不使用唯一索引的已知原因?

7
CTE和临时表之间有什么区别?
公用表表达式(CTE)和临时表之间有什么区别?我什么时候应该使用另一个? CTE WITH cte (Column1, Column2, Column3) AS ( SELECT Column1, Column2, Column3 FROM SomeTable ) SELECT * FROM cte 临时表 SELECT Column1, Column2, Column3 INTO #tmpTable FROM SomeTable SELECT * FROM #tmpTable
174 sql-server  cte 


19
开发人员应该能够查询生产数据库吗?
是否应授予开发人员查询(SELECT/只读)生产数据库的权限?我以前工作过的地方是开发团队db_datareader。我现在工作的地方,开发团队甚至无法连接到生产实例。 测试实例之一是每周一次从生产备份还原的生产副本,因此开发人员实际看到数据没有任何问题。 有什么好的理由不允许开发人员查询生产(除了不希望他们有权读取敏感数据外)?

4
帮助安装SQL Server 2017-VS Shell安装失败,退出代码为1638
关于如何处理此错误的任何建议: TITLE: Microsoft SQL Server 2017 Setup ------------------------------ The following error has occurred: VS Shell installation has failed with exit code 1638. For help, click: https://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=0x5B39C8B9%25401434%25403 ------------------------------ BUTTONS: OK ------------------------------ 这是一台正在运行的新笔记本电脑 SQL Server 2016 Express Visual Studio 2017 SSMS 2017 我尝试卸载与SQL Server或Visual Studio相关的所有内容。 日志:[3500:3970] [2017-11-03T16:25:20] e000:错误0x80070666:在安装较新版本时无法安装产品。 Detailed results: Feature: Full-Text …

4
为什么数字表“无价”?
我们的常驻数据库专家告诉我们,数字表非常宝贵。我不太明白为什么。这是一个数字表: USE Model GO CREATE TABLE Numbers ( Number INT NOT NULL, CONSTRAINT PK_Numbers PRIMARY KEY CLUSTERED (Number) WITH FILLFACTOR = 100 ) INSERT INTO Numbers SELECT (a.Number * 256) + b.Number AS Number FROM ( SELECT number FROM master..spt_values WHERE type = 'P' AND number <= 255 ) a …
112 sql-server 

6
如何确定索引是必需的还是必需的
我一直在我们的MS SQL数据库上运行自动索引工具(我修改了源自Microsoft的脚本,该脚本查看索引统计表- 自动化自动索引)。现在,从统计信息中,我可以获得需要创建的索引的建议列表。 编辑: 上述索引从DMV那里获取信息,这些信息告诉您数据库引擎将使用哪些索引(如果索引可用),并且脚本采用Top x建议(按查找,用户影响等)并将它们放在表格中。 (上面的编辑部分摘自拉里·科尔曼(Larry Coleman)在下面的回答,以阐明脚本的作用。 由于我是数据库管理员的新手,并且已经在网上进行了快速搜索,因此我不愿意尝试并盲目添加推荐的索引。但是,由于没有该领域的经验,我正在寻找有关如何确定建议是否必要的建议。 我需要运行SQL事件探查器,还是最好检查查询表的代码?您还有其他建议吗?

6
SQL Server Management Studio 18无法打开(仅弹出初始屏幕)
我只是在仅安装了VS2019的计算机上安装了SSMS 18 GA,当我尝试打开SSMS时,将显示启动屏幕,但随后该过程退出。 使用-log参数运行ssms会显示一条错误消息: 程序包[任务计划程序程序包]的CreateInstance失败源:'mscorlib'描述:无法加载文件或程序集'Microsoft.VisualStudio.Shell.Interop.8.0,版本= 15.0.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或以下之一它的依赖关系。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)System.IO.FileLoadException:无法加载文件或程序集“ Microsoft.VisualStudio.Shell.Interop.8.0,版本= 15.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)文件名:'Microsoft.VisualStudio.Shell.Interop.8.0,版本= 15.0.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'---> System.IO.FileLoadException:无法加载文件或程序集'Microsoft.VisualStudio.Shell.Interop.8.0,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)文件名:'Microsoft.VisualStudio.Shell.Interop.8.0,版本= 8.0.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a' WRN:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。注意:程序集绑定失败日志记录会降低性能。要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。 在System.Reflection.RuntimeAssembly.GetType(字符串名称,布尔throwOnError,布尔ignoreCase)在System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly程序集,字符串名称,布尔throwOnError,布尔ignoCase,ObjectHandleOnStack类型)在System.Activator.CreateInstance(String assemblyString,字符串typeName,布尔值ignoreCase,BindingFlags bindingAttr,活页夹装订器,Object [] args,CultureInfo文化,Object [] ActivationAttributes,证据securityInfo,StackCrawlMark&stackMark),位于System.Activator.CreateInstance(字符串assemblyName,String typeName),位于System.AppDomain .CreateInstance(字符串assemblyName,字符串typeName) System.IO.FileLoadException:无法加载文件或程序集“ …
105 sql-server  ssms  ssms-18 


6
为什么同时使用TRUNCATE和DROP?
在我工作的系统中,有许多使用临时表的存储过程和SQL脚本。使用这些表后,删除它们是一个好习惯。 我的许多同事(几乎所有的同事都比我经验丰富)通常会这样做: TRUNCATE TABLE #mytemp DROP TABLE #mytemp 我通常DROP TABLE在脚本中使用一个。 是否有充分的理由在a TRUNCATE之前立即进行DROP?

8
即使第一个参数不为NULL,SQL Server也会读取所有COALESCE函数吗?
我正在使用T-SQL COALESCE函数,其中第一个参数在运行的大约95%的时间内不会为null。如果第一个参数为NULL,则第二个参数将是一个漫长的过程: SELECT COALESCE(c.FirstName ,(SELECT TOP 1 b.FirstName FROM TableA a JOIN TableB b ON .....) ) 例如,c.FirstName = 'John'如果SQL Server仍然可以运行子查询? 我知道使用VB.NET IIF()函数,如果第二个参数为True,则代码仍会读取第三个参数(即使不会使用)。

7
Guid vs INT-作为主键哪个更好?
我正在阅读有关是否使用Guid和的原因int。 int体积更小,速度更快,易于记忆,并按时间顺序排列。至于Guid,我发现的唯一优势是它是独一无二的。在那种情况下,a Guid会比更好int,为什么? 从我所看到的来看,int除了数量上的限制外没有其他缺陷,在许多情况下这是无关紧要的。 为什么要精确Guid创建?实际上,我认为它除了用作简单表的主键外,还有其他用途。(是否有用于实际应用的示例Guid?) (Guid = UniqueIdentifier)SQL Server上的类型

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.