Questions tagged «sql-server-2005»

使用此标记可以解决特定于Microsoft SQL Server 2005版本的问题。

12
SQL Server架构有什么好处?
我不是使用SQL数据库(尤其是SQL Server)的初学者。但是,我主要是从事SQL 2000的工作,在2005年以来,我一直对架构感到困惑。是的,我知道架构的基本定义,但是它们在典型的SQL Server部署中真正用于什么? 我一直只使用默认架构。我为什么要创建专门的架构?为什么要分配任何内置模式? 编辑:为澄清起见,我想我正在寻找模式的好处。如果您仅打算将其用作安全方案,则似乎数据库角色已经填补了这个角色。使用它作为名称空间说明符似乎已经可以通过所有权(dbo与用户等)来完成。 我想我要问的是,您无法使用所有者和角色执行的模式是什么?他们有什么特别的好处?

9
在SQL Server中执行嵌套case语句逻辑的最佳方法
我正在写一个SQL查询,其中需要根据很多条件来计算返回的一些列。 我目前正在使用嵌套的case语句,但是它变得凌乱。有没有更好(更有条理和/或更易读)的方法? (我正在使用Microsoft SQL Server,2005) 一个简化的例子: SELECT col1, col2, col3, CASE WHEN condition THEN CASE WHEN condition1 THEN CASE WHEN condition2 THEN calculation1 ELSE calculation2 END ELSE CASE WHEN condition2 THEN calculation3 ELSE calculation4 END END ELSE CASE WHEN condition1 THEN CASE WHEN condition2 THEN calculation5 ELSE calculation6 END ELSE …

8
nvarchar(max)与NText
在SQL Server 中使用nvarchar(max)vs. NText数据类型的优点和缺点是什么?我不需要向后兼容性,因此很好,nvarchar(max)在较早的SQL Server版本中不支持。 编辑:很显然的问题也适用于TEXT和IMAGE对比varchar(max),并varbinary(max)为那些在搜寻这些数据类型后。




6
用户和SQL Server中的登录名之间的区别
最近,我进入了SQL Server的许多不同区域,而这些区域通常是我不喜欢的。让我感到困惑的其中之一是“登录和用户”区域。似乎这应该是一个非常简单的主题... 似乎每个登录名只能有1个用户,每个用户只能有1个登录名。 登录名可以与多个表相关联,从而将该用户与多个表相关联。 所以我的问题是为什么还要有登录名和用户?他们似乎几乎是同一个人。有什么区别,或者我似乎缺少什么?

5
索引中列的顺序有多重要?
我听说您应该在索引声明的开头放置最有选择性的列。例: CREATE NONCLUSTERED INDEX MyINDX on Table1 ( MostSelective, SecondMost, Least ) 首先,我说的是正确的吗?如果是这样,我是否可能会通过重新排列索引中列的顺序来看到性能上的巨大差异,还是更多的“不错的做法”? 我问的原因是因为在通过DTA进行查询之后,建议我创建一个索引,其中几乎所有列都与现有索引相同,只是顺序不同。我正在考虑只是将缺少的列添加到现有索引中,并称之为良好。有什么想法吗?



19
SQL Server还原错误-访问被拒绝
我在本地计算机上创建了一个数据库,然后进行了名为tables.baktable 的备份DataLabTables。 我将该备份移到了没有该表的远程计算机上,并试图进行还原,但是出现以下错误: System.Data.SqlClient.SqlError:尝试在c:\ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ DataLabTables上尝试“ RestoreContainer :: ValidateTargetForCreation”时,操作系统返回错误“ 5(访问被拒绝。)” .mdf”。 如果那是问题,我应如何解决我的权利?


10
如何在不使用MS SQL Server Management Studio的情况下在SQL Server中更改默认数据库?
我从SQL Server删除了一个数据库,但是事实证明,我的登录名设置为使用删除的数据库作为默认数据库。我可以通过使用连接对话框中的“选项”按钮并选择“ master”作为要连接的数据库来连接到SQL Server Management Studio。但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用默认数据库进行连接并失败。 有谁知道如何在不使用对象资源管理器的情况下设置默认数据库?


8
在WHERE子句中引用列别名
SELECT logcount, logUserID, maxlogtm , DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary WHERE daysdiff > 120 我懂了 “无效的列名daysdiff”。 Maxlogtm是日期时间字段。是让我发疯的小东西。

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.