文章标签 ‘Database’

select count(CatID) as TotalCount,CatID,SC.CategoryName from Space_Blog SB Left Outer Join Space_Category SC ON SC.CategoryID = SB.CatID where UserID =25 group by CatID,SC.CategoryName

2010年6月5日14:59 | 没有评论
分类: 后端

DEMO1 select * from ( select Player, Year, HomeRuns,  Rank() over (Partition BY Player order by HomeRuns DESC, Year DESC) as Rank from Batting ) tmp where Rank = 1   DEMO2 WITH ttts AS ( Select JournalID,ParentID,RANK() OVER (partition by ParentID orDER BY JournalID asc) AS rt From Journal_Category Where ParentID in (Select JournalID [...]

2009年12月1日00:40 | 没有评论
分类: 后端
标签:

  数据结构类别   Category表   ID 序号   categoryname 类别名称   parentid 父类别ID,一级类别此值为0   orderid 排序ID   id    cagegoryName     parentid      orderid   1     类别1                 0                0   2     类别2                 0                1   3     类别11               1                1   4     类别21               2                1   5     类别31               3                1   6     类别12               1                2   7     类别22               2                [...]

2009年6月25日16:38 | 9 条评论
分类: 后端
标签:

问题现象: 使用的SQL数据库,突然不能添加内容。 查看日志发现: 错误: 1105,严重度: 17,状态: 2 未能为数据库 ‘sq_webdb’ 中的对象 ‘detail’ 分配空间,因为文件组 ‘PRIMARY’ 已满。 原因数据库的大小被限制了大小,增加数据库大小。 为了不让文件组 ‘PRIMARY’ 已满再次出现,我索性把这个库设置为不限制大小。小样,还不信治不了你 ^^!

2009年3月16日01:21 | 没有评论
分类: 后端
标签:

  错误特证:不可识别的数据库格式 Microsoft JET Database Engine 错误 ’80004005′        这几天有人使用空间的上传由MDB文件改为ASP文件后的数据运行用提示“不可识别的数据库格式”,出现此类问题的原因是上传过程中对破坏了MDB原有的格式。   标准的FTP协议提供了两种传输模式:基于二进制的(Binary)和基于ASCII。 ASCII 模式用于文本文件的传输,而二进制(Binary)模式用于程序和类似的数据的传输。用户不需要选择特定的传输模式,现在所有的客户端都可以识别传输的文件的类型自动切换模式。出现MDB数据被破坏的原因很可能是强制模式造成的。   所以方法一:把上传传输模式设置为“自动”,重新上传。   方法二:将ACCESS数据库直接为扩展MDB的上传至服务器,上传完成后再修改为所需要的扩展名。   请在操作前备份数据库,以防止错误。

2007年11月29日00:30 | 没有评论
分类: 后端
标签:

  触发程序(trigger)是一种特殊型态的预存程序,当您使用Insert、Update或Delete命令来修改资料列时,Microsoft SQL Server会自动执行您所定义的触发程序。        触发程序(trigger) 是一种特殊的预存程序,执行特定的陈述式(Update、Insert 或 Delete)就可以啟动触发程序。触发程序与其他预存程序相同,可以是由简单,亦或是复杂的 T-SQL 陈述式组成;至於与其他预存程序不同的地方,则在於当指定的资料被修改,触发程序即自动执行,无法依名称以手动执行。触发程序执行时,称為触动(fire)。触发程序虽建立在现有的资料库资料表中,但它可以存取其他资料库的资料表和物件。触发程序不能建立在临时的资料表或临时的系统资料表上,只能建立在使用者自订资料表或自订的检视表中。执行触发程序所在的资料表或检视表,称為触发程序资料表(trigger table)。       触发程序有五种类型:Update、Insert、Delete、INSTEAD OF 和 AFTER。有了触发程序,只要您对该表格更新、插入或删除时,就会触动对应的 Update、Insert 或 Delete 触发程序。INSTEAD OF 和 AFTER 是 SQL 2000 新增的两项触发程序,Instead of的原义是「取代」,INSTEAD OF触发程序会取代插入、更新和删除操作而执行。AFTER 触发程序会在触发动作之后再触动,可视為控制触发程序啟动时间的机制。       对资料的更新、插入及删除被视為资料修改事件。您可以设计当一项或多项修改事件產生时,即触动触发程序。例如,当执行 Update 或 Insert 陈述式时即触动触发程序。这种类型的触发程序称為 Update/Insert 触发程序。您也可以建立任何一项修改事件產生时,执行相对的 Update/Insert/Delete 触发程序。       下面是关於触发程序的一些其他规定:       触发程序只在触发它的陈述式完成后执行。举例来说,如果 Update 陈述式成功,Update 触发程序才会被触动。        如果陈述式在资料表中执行违反条件约束或引起错误,触发程序不会触动。        触发程序视為单一交易中的一部份,因此可以由原触发程序復原交易,如果在交易过程中侦测到严重的错误(如使用者中断连线),则会自动復原整个交易。        一个陈述式只能触动一次触发程序。        当触发程序触动,若產生任何结果,就会如预存程序一样,将结果传回其呼叫的应用程式。一般来说,Insert、Update 或 [...]

2007年9月4日22:35 | 没有评论
分类: 后端
标签:

Alter  FUNCTION [dbo].SubStr (@string varchar(500),                        –需要截取的字符  @length int                                 –要显示的中文字符的个数,一个中文字符等于两个英文字符  )®RETURNS varchar(500)ASBEGINdeclare @str varchar(500)                    –保存返回字符串declare @count int                               declare @while int                               declare @strlen int                                –传进字符串的长度declare @char varchar(2)                     –保存临时的字符–初始化变量set @count=0set @while=1set @strlen=len(@string)set @str=” if(@strlen>@length)                    –判断字符串是否比要显示的长begin    while @count<(@length-2)*2   –循环截取字符串    begin        set @char=substring(@string,@while,1)        set @while=@while+1        if(len(@char)=0)    –判断是否结束            break;        if(unicode(@char)>128)  –如果unicode码比128大则认为是中文        begin                set @count=@count+2        end        else        begin            set @count=@count+1        end        set @str=@str+@char        if ((@length*2)-@count)=5   –当截取到最后一个字符时        [...]

2007年8月6日23:58 | 2 条评论
分类: 后端
标签:

如果要得到如CS_00000001,CS_00000002,CS_00000003的流水帐号 如下存储过程 Create PROCEDURE [dbo].[sp_Room_Code] @CodeID varchar(11) output –// CS_00000001 流水帐号的长度,这里我用11位 AS declare @num int –//定义一个 select @num = Max(cast(substring(Room_Code,3,4)as int)) from YourTable –//得到 Room_Code 流水帐号字段后最大的一个,暂存@num –这一句用到三个 SQL 函数 分别是 Max,cast,substring,它们的用法可以参考Server自带的帮助文档。 set @num = @num + 1 –//增加1 set @CodeID= 'cs_' + right('00000000'+cast(@num as varchar(8)),8) –//这一句是生成流水帐号的关键 –//它的格式是 right(长度为流水帐号数字长度等长的填充字符串 + cast(@num as 流水帐号数字长度)),流水帐号长度) –// 这里用到 right函数 [...]

2007年8月1日00:25 | 没有评论
分类: 后端
标签:

在做一个程序的时候用到ExecuteNonQuery()执行 select,结果总是返回-1。 查到下面文章。 关于ExecuteNonQuery() 方法 最近看到有人问为什么SqlCommand.ExecuteNonQuery()执行Select子句后老是返回-1的问题。 以前对这个一直都没在意,基本上都没有用其返回值,查了一下MSDN,如下: SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数。 备注: 可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 Update、Insert 或 Delete 语句,在不使用 DataSet 的情况下更改数据库中的数据。 虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。 对于 Update、Insert 和 Delete 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1 执行Select子句,数据库并无变化,自然返回-1。同样适合ODBC、OLE DB等数据源,因为都实现IDbCommand.ExecuteNonQuery方法。 函数申明: [Visual Basic] Public Overridable Function ExecuteNonQuery() As Integer Implements _ IDbCommand.ExecuteNonQuery 实现: IDbCommand.ExecuteNonQuery 对于IDbCommand.ExecuteNonQuery 方法,针对 .NET Framework 数据提供程序的 Connection 对象执行 SQL [...]

2007年7月29日22:49 | 没有评论
分类: 后端
标签: