Questions tagged «sql-server-2005»

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

9
相当于COUNTIF聚合函数的SQL Server
我正在建立一个带有GROUP BY子句的查询,该子句需要能够仅基于特定条件对记录进行计数(例如,仅对某个列值等于1的记录进行计数)。 SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Get the average of all records that are 1 FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000 该COUNTIF()行显然由于没有调用本机SQL函数COUNTIF而失败,但是这里的想法是确定MyColumn的所有值为'1'的行的百分比。 关于如何在MS SQL 2005环境中正确实现这一点的任何想法?

11
LEFT OUTER JOIN如何返回比左表中更多的记录?
我有一个非常基本的LEFT OUTER JOIN,可以从左表中返回所有结果,并从更大的表中返回一些其他信息。左表包含4935条记录,但是当我将其左移到另一个表中时,记录数会大大增加。 据我所知,绝对的福音是,LEFT OUTER JOIN将返回左表中的所有记录,并返回右表中的匹配记录,并为所有无法匹配的行返回空值,因此,我的理解是返回的行数不可能超过左表中存在的行数,但是这都是一样的! SQL查询如下: SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID FROM SUSP.Susp_Visits LEFT OUTER JOIN DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum 也许我在语法上犯了一个错误,或者我对LEFT OUTER JOIN的理解不完整,希望有人能解释这是怎么发生的? 后记 感谢您提供的出色答案,现在我对LEFT OUTER JOINS的了解要好得多,但是有人可以建议修改此查询的方式,以便使我只获得与左表中一样多的返回记录吗? 此查询纯粹是为了生成报告,重复的匹配项只会使事情变得混乱。 /后记


15
在SQL Server中修剪前导零的更好技术?
我一直在使用这一段时间: SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col)) 但是最近,我发现包含“ 00000000”之类的所有“ 0”字符的列存在问题,因为它从未找到匹配的非“ 0”字符。 我见过的另一种技术是使用TRIM: REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0') 如果存在嵌入的空格,则会出现问题,因为当空格变成“ 0”时,它们将变成“ 0”。 我试图避免标量UDF。我发现SQL Server 2005中的UDF有很多性能问题。

13
如何以编程方式更改标识列的值?
我有一个MS SQL 2005数据库,其中的表Test带有column ID。ID是一个标识列。 我在此表中有行,并且所有行都有其对应的ID自动递增值。 现在,我想像这样更改此表中的每个ID: ID = ID + 1 但是当我这样做时,我得到一个错误: 无法更新标识列“ ID”。 我已经试过了: ALTER TABLE Test NOCHECK CONSTRAINT ALL set identity_insert ID ON 但这不能解决问题。 我需要在此列设置标识,但是我还需要不时更改值。所以我的问题是如何完成这项任务。




30
如何解决错误“命名管道提供程序,错误40-无法打开与'SQL Server'的连接”?
我似乎无法从站点连接到我的数据库。我收到此错误: 命名管道提供程序,错误:40-无法打开与SQL Server的连接 我尝试使用本地IP地址以及公共IP地址进行连接。我试过了: 是的,站点可以与服务器通信 已启用命名管道/ TCP。 允许远程连接。 Windows防火墙已关闭 在Windows防火墙中为端口1433创建了一个例外。 在SQL Server配置管理器中启用了所有功能。 我还能在这里做什么?


6
更改表添加多列ms sql
谁能告诉我以下查询中的错误在哪里 ALTER TABLE Countries ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage bit, HasText bit); ALTER TABLE Regions ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage bit HasText bit); ALTER TABLE Provinces ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage bit HasText bit); ALTER TABLE Cities ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage …


10
存储过程和视图之间有什么区别?
我对以下几点感到困惑: 存储过程和视图之间有什么区别? 在SQL Server中,什么时候应该使用存储过程,什么时候应该使用视图? 视图是否允许在可以传递参数的地方创建动态查询? 哪一个最快,在什么基础上比另一个快? 视图或存储过程是否永久分配内存? 如果有人说视图创建虚拟表,而过程创建物料表,那又意味着什么呢? 如果有任何其他问题,请让我知道。

11
如何识别引用特定表的所有存储过程
我在开发环境上创建了一个表用于测试目的,很少有sp引用此表。现在,我必须删除该表,并标识所有引用此表的sp。我很难找到所有sp的列表。请通过假设表名称为'x'并且数据库为sql server 2005来建议一些查询。

7
SQL Server,将命名实例转换为默认实例?
我需要将SQL Server 2005的命名实例转换为默认实例。 有没有一种方法可以重新安装? 问题是,每6个开发人员中就有2个安装了命名实例。因此,对于我们其他四个人而言,它变成了改变连接字符串的痛苦之举。我正在寻找将这2个恢复到我们团队标准设置的最小阻力。 每个人都表示这将带来太多麻烦,并且将减少他们的开发时间。我认为解决问题需要花费一些时间,为了所有人的最大利益,我尝试梳理已安装的配置应用程序,但没有看到任何内容,因此我认为这里有一个对内部工作有更多了解的人。

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.