Tag: sql server 2005

用t-sql计算时间跨度

给定两个date/时间: @start_date = '2009-04-15 10:24:00.000' @end_date = '2009-04-16 19:43:01.000' 是否可以按以下格式计算两个date之间的时间间隔? 1天9小时19分

如何删除口音和所有字符<>在SQL服务器中的..

我需要对varchar(20)字段进行以下修改: 用普通字母replace口音(如è到e) (1)删除所有不在a..z中的字符 例如 'aèàç=.32s df' 必须成为 'aeacsdf' 是否有特殊的存储function来实现这一点? 更新 :请提供一个T-SQL而不是CLR解决scheme。 这是我暂时做的解决方法,因为它暂时适合我的需求,无论如何,使用更优雅的方法会更好。 CREATE FUNCTION sf_RemoveExtraChars (@NAME nvarchar(50)) RETURNS nvarchar(50) AS BEGIN declare @TempString nvarchar(100) set @TempString = @NAME set @TempString = LOWER(@TempString) set @TempString = replace(@TempString,' ', '') set @TempString = replace(@TempString,'à', 'a') set @TempString = replace(@TempString,'è', 'e') set @TempString = replace(@TempString,'é', 'e') set @TempString […]

SQL Server添加新列后无效的列名称

我只是通过SSMSdevise器将数据添加到现有的包含数据的表中,表更新正常,我可以成功地运行一个select查询,但是查询完成后,我注意到新列以红色下划线,出现错误表明这是一个无效的列名称。 为什么会发生? 我希望查询失败,如果列是无效的。 SSMS是否保留了某些必须被刷新的旧表的内部引用? 我试图closures数据库连接并重新打开它,但仍然是相同的错误。 不知道我在这里错过了什么。 SELECT TOP 100 [PRIMARY_NDX_Col1], [NEW_Col], –QUERY EXECUTES SUCCESSFULLY, BUT THIS IS UNDERLINED RED AS AN INVALID COLUMN [Col3] FROM [dbo].[MyTable]

如何将刻度转换为date格式?

我正在将ticks值转换为如下所示的date: Convert(datetime, (MachineGroups.TimeAdded – 599266080000000000)/864000000000); 使用这个我得到: 9/27/2009 10:50:27 PM 但我只想要这种格式的date: October 1, 2009 我的示例蜱值是 633896886277130000 做这个的最好方式是什么?

SQL Server:如何获取在自引用表中给定父ID的所有子logging

嗨,我有一个引用自己的表,我需要能够select父母和所有它是从一个给定的父母的Id的子logging。 我的表格如下: ID | ParentID | Name ———————– 1 NULL A 2 1 B-1 3 1 B-2 4 2 C-1 5 2 C-2 所以对于上面的例子,我希望能够传入1的值并获得上面的所有logging。 到目前为止,我已经提出了下面的recursion表值函数,但它不像预期的那样工作(只返回第一条logging)。 CREATE FUNCTION [dbo].[SelectBranches] ( @id INT ,@parentId INT ) RETURNS @branchTable TABLE ( ID INT ,ParentID INT ,Name INT ) AS BEGIN IF @branchId IS NOT NULL BEGIN INSERT INTO […]

在特定date之后列出行

我的数据库中有一个名为“dob”的datetimetypes的列。 如何在SQL Server 2005中的特定DoB之后select所有行?

SQL Server在TEXT字段中查找并replace

我有一个SQL Server 2005中的数据库,它是从SQL Server 2000启动的,并且仍然使用TEXTtypes字段而不是varchar(max)。 我需要find并replace文本字段中的一串字符,但是我发现的所有例子如何做到这一点似乎不会为我工作。 看起来UPDATETEXT命令要求明确设置两个参数“insert_offset”和“delete_length”,但是我要search的string可以显示在文本中的任何一点,甚至在同一个单元格中的几个点上。 我对这两个参数的理解是,imsearch的string总是在同一位置,所以insert_offset是UPDATETEXT命令将开始replace文本的文本中的空格数。 示例:需要查找: &lt;u&gt; 并将其replace为: <u> 文本字段示例: *Everyone in the room was <b>&lt;u&gt;tired&lt;/u&gt;.</b><br>Then they woke <b>&lt;u&gt;up&lt;/u&gt;. 任何人都可以帮我解决这个问题吗? 谢谢!

最近的一条左连接logging

想象一下,我在SqlServer中有以下3个表: Customer (CustomerID, FirstName, LastName) Address (AddressID, CustomerID, Line1, City, State) Product (ProductID, CustomerID, Description) 一个客户可以有多个交货地址和多个产品。 我想要做的是列出由最近的地址logging确定的每个州的客户数量。 如“每个州有多less客户最后收到产品?”。 因此,我对客户以前的任何地址logging不感兴趣,只有最近的(由AddressID确定)。 State | Number of Customers ————————– CA | 32 GA | 12 TX | 0 OH | 18 我通常会做这样的事情: SELECT a.State, count(c.CustomerID) FROM Product p INNER JOIN Customer c ON c.CustomerID = p.CustomerID LEFT JOIN Address […]

将SSMS .rpt输出文件转换为.txt / .csv

我想将我的大型SSMS(SQL Server Management Studio)查询结果(2.5m行,9个字段)导出为.csv或逗号分隔的.txt(带标题)。 (MS SQL Server 2005 Management Studio。) 这样我就可以逐行读入VBA程序(对数据进行一定的计算)或者在Excel中对其进行查询(例如使用Microsoft Query)。 计算很复杂,我宁愿在SSMS以外的地方进行。 如果我selectSSMS中的“查询结果到文本”和一个小的答案(几行,例如高达200k),我当然可以简单地复制并粘贴到文本编辑器。 对于我这里的大回答,我当然可以复制和粘贴200k左右的行,每次10次,进入一个文本编辑器,如超编辑。 (当我同时尝试所有2.5米的时候,我在SSMS里面发现了一个内存警告。)但是对于未来我想要一个更优雅的解决scheme。 对于“查询结果到文件”,SSMS总是写入一个.rpt文件。 (如果在结果窗口中右键单击并select“另存为”,则会出现如上所述的内存错误。) – >所以看起来我唯一的select是让SSMS将结果输出到一个文件,即.rpt,然后将.rpt转换为.txt。 我假设这个.rpt是一个Crystal Reports文件? 或者不是。 我的电脑上没有Crystal Reports,所以我无法使用它来转换文件。 当在Ultra-Edit中打开.rpt时,它看起来很好。 但是,在Excel中的Microsoft Query中,标题不希望显示。 当我简单地使用VBA读写.rpt时,文件大小减半。 (330至180微克)。 在Microsoft Query中,标题确实显示(尽pipe第一个字段名有一个有趣的主angular,在其他完全不同的情况下,这在我之前发生过)。 我似乎能够在Excel中做有意义的数据透视表。 但是,当我在Ultra-Edit中打开这个新文件时,它显示中文字符! 难道还有一些有趣的angular色呢? – >是否有免费(和简单/安全)转换器应用程序可用的地方。 或者我应该相信,这个.txt对于读入我的VBA程序是很好的。 谢谢

确定SQL Server中用户创build的对象

我正试图通过我们的开发数据库,​​并清理了一些旧的testing过程/表。 是否有可能确定SQL Server 2005数据库中的用户创build的对象? 如果是这样,我将如何去find这些信息? 编辑:只是想澄清,有问题的对象已经存在。 设置审计和触发器可能不会对我很好。 我想我主要是在寻找一种方法来使用系统表/视图来获取信息。