Tag: sql server 2005

SQL如何在两个日期之间的一小时内对事件求和并将其显示在一行中

我正在用C#和SQL server 2005开发一个报告,我只需要显示我们每小时收到多少命中。 桌子很大。 输出应如下所示: 行#| 日期| 时间| 命中数 —————————– 1 | 07/05/2012 | 8:00 | 3 2 | 07/05/2012 | 9:00 | 4 3 | 07/05/2012 | 10:00 | 0 4 | 07/05/2012 | 11:00 | 五 我的表看起来像这样: “HitTime”: 07/05/2012 08:02:24 07/05/2012 08:12:21 07/05/2012 08:23:00 07/05/2012 09:01:00 07/05/2012 09:08:14 07/05/2012 09:12:31 07/05/2012 09:22:27 ..etc正如你在HitTime字段中看到的那样我只有日期和时间,我需要在同一天显示,例如从8:00到8:59,我得到了多少点击,它应该是整天,从那天的第一秒开始直到第二天结束。

SqlDependency notification – 执行查询后立即失败通知

我有一个问题,我试图设置SqlDependency通知,以便在sql服务器上的表中的数据发生更改时接收通知。 但是,只要我执行用于设置sql depenency的查询,就会立即收到通知,指示由于sql语句出现问题而导致订阅尝试失败( SqlNotificationEventArgs shows Info: Invalid, Source: Statement, Type: Subscribe ) 这表明sql查询存在问题,但是尝试了一个非常基本的示例以确保它不是select语句的问题,我仍然立即收到这些“无效”通知。 我还确保我已经启动了SQL Server的服务代理,创建了一个队列和通知服务,并授予了对主体的所有必要权限(在这种情况下,用户我正在连接到sql server)这里是我的桌子: CREATE TABLE [dbo].[TableTest]( [id] [int] NOT NULL, [val1] [int] NULL, [val2] [int] NULL, CONSTRAINT [PK_TableTest] PRIMARY KEY CLUSTERED ( [id] ASC ) ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) […]

T-SQL(varchar(max)vs CLR(string,SqlString,SqlChars)?

我有一个问题,我无法解决。 我正在使用SQL Server 2005,C#CLR来使用外部dll。 问题在于参数的长度。 我需要使用函数参数类型varchar(max) 。 如果在C#代码中我使用string , SqlSring ,我不能使用T-SQL类型varchar(max) ,只能使用nvarchar(4000) varchar(4000) nvarchar(4000) 。 我需要说的是,当我需要使用超过4000个符号时,可能会出现这种情况,所以我需要知道,我需要使用哪种C#类型的varchar(max) 。 我已经阅读了很多文章,其中有几篇说,为此我可以使用SqlChars 。 但! 我有字符串操作。 如何使用string或SqlString进行操作然后转换为SqlChars ? (可能是SqlChars.ToString()或SqlChars.ToSqlString() )。 我没有找到任何C#代码。

为什么存储在NVARCHAR列中的值有时会用尾随空格填充?

我正在处理的应用程序是将Unicode字符串存储在SQL Server 2005数据库的NVARCHAR(50)列中。 有时,数据库返回一个填充空格的字符串,直到列的最大长度(50)。 在其他时候,填充不会发生。 我认为这个列的类型最初被指定为NCHAR ,但是当我们意识到添加了空格时,我们将其更改为NVARCHAR(50) 。 这可能跟它有什么关系吗? 无论哪种方式,这个“function”可以关闭吗? 澄清 我刚刚意识到我上面写的内容并没有说明即使是新插入的字符串也会被填充空格。

SQL Server XML数据类型在.NET中转换为什么?如何将其转换为XmlDocument?

我们在数据库中有一个类型为xml 。 我正在通过.net SqlDataReader读取此信息,但我不确定要将其转换为什么。 msdn表( http://msdn.microsoft.com/en-us/library/cc716729.aspx )表明它是.net类型的Xml ,但是没有System.Xml ,只有System.Web.UI.WebControls.Xml所以我不确定这是否正确。 所以我的问题是: 当我从SqlDataReader读取它时,我将SqlDbType.Xml转换为什么,以及如何将其转换为XmlDocument ?

从平面文件中将数百万条记录插入SQL Server有哪些陷阱?

我即将开始编写一个Windows窗体应用程序的旅程,该应用程序将打开一个管道分隔的txt文件,大小约为230 mb。 然后,此应用程序将此数据插入到sql server 2005数据库中(显然这需要迅速发生)。 我正在使用c#3.0和.net 3.5来完成这个项目。 我不是要求应用程序,只是在这里提供一些公共建议和潜在的陷阱建议。 从我收集的网站上我发现SQL批量复制是一个先决条件,我应该考虑一下(我认为只需用表格应用程序打开txt文件将是一项很大的努力;可能会将其分解为blob数据?)。 谢谢,如果有人需要,我会编辑问题以便清楚。

在SQL Server 2005 IMAGE列中存储20 Meg文件的最有效方法

我们将文档存储在SQL Server 2005数据库表中,列格式为“Image”。 每次我尝试存储大于1兆的PDF文件时,它都会以某种方式被破坏。 在.NET中是否有任何特别有效的方法可以将大文件(~10megs)序列化并存储到数据库中? [编辑]微软实际上说最大文件大小约为2G可变长度二进制数据从0到2 ^ 31-1(2,147,483,647)字节。 http://msdn.microsoft.com/en-us/library/ms187993.aspx

SELECT和UPDATE表,因此Threads没有重叠

说我有下表: ID|Read ——- 1|true 2|false 3|false 4|false …我需要读取最小的ID,其中[Read] == false; 另外,更新我现在已经阅读过了。 因此,如果我执行我的存储过程dbo.getMinID,它将返回ID:2,并更新[Read] – > true。 CREATE PROCEDURE [dbo].[getMinID] ( @QueryID INT OUTPUT ) BEGIN SELECT TOP 1 @QueryID = [ID] from Table UPDATE Table SET [Read] = 1 WHERE [ID] = @QueryID END 问题是我有十(10)个异步线程同时执行dbo.getMinID,我不能让它们在任何情况下选择SAME [ID]。 我担心我的SELECT和UPDATE语句之间执行第二个线程,因此在两个场景中返回[ID]:2。 无论有多少线程对存储过程起作用,我如何确保不会选择/更新同一记录两次? 另外,请记住表CONSTANTLY添加了新行,所以我无法锁定表!

如何使用C#运行sql脚本

我有一个sql脚本来创建一个新的数据库,我需要在安装我们的产品时创建。 为此,我需要使用c#触发脚本。 DB是sql-server 2005 express。 Plz帮助…. sql脚本如下: USE [master] GO /****** Object: Database [Jai] Script Date: 02/12/2010 11:01:25 ******/ CREATE DATABASE [Jai] ON PRIMARY ( NAME = N’Jai’, FILENAME = N’C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\Jai.mdf’ , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N’Jai_log’, FILENAME = N’C:\Program […]

C#SqlDataReader执行统计信息

我正在创建一个自动数据库查询执行队列,这实际上意味着我正在创建一个逐个执行的SQL查询队列。 使用类似于以下的代码执行查询: using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings[“NorthwindConnectionString”].ConnectionString)) { cn.Open(); using (SqlCommand cmd = new SqlCommand(“SP”, cn)) { cmd.CommandType = CommandType.StoredProcedure; using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { } } } } 我想做的是尽可能多地收集关于执行的信息。 花了多长时间。 受影响的行数。 最重要的是,如果它失败了,为什么它失败了。 实际上我可以获得关于我希望能够保存的执行的任何信息。