SQL 2005 中的 TOP子句

衣明志 发表于 , 阅读 (15596)
在给客户解决一个小的技术问题时,发现一些技术人员对SQL2005的T-SQL还有些东西是不太熟悉的,这次我就通过与SQL2000对比着来说一下SQL2005的TOP子句吧。 首先说一下大家熟悉的SELECT语句。 SQL2000中我们主要类似这样写:SELECT TOP 10 * FROM [News] ORDER BY [Id] DESC。这样我就能获取News表按Id列倒序的前10条记录。那么一个小问题就来了,我们知道SQL2000的TOP后面只能跟常量的,不能跟变 ... 阅读全文

SQL2000数据库中删除

衣明志 发表于 , 阅读 (15907)
在一些网站或者软件系统中,由于安全或者程序异常等问题,可能会在SQL Server 2000中造成一个异常问题:在企业管理器中打开数据库发现有一些“坏表”,即无法使用,也无法正常删除。其原因往往是因为在尝试建表的过程中,只向数据库服务器的系统表sysobjects中写入了类型为“U”的记录,却并未真正在数据库中成功创建该表的实体。ok,解决问题有思路了: 假设“坏表”的表名为cmd,那么我们在查询分析器中对当前的数据库写一个sql语句: delete from sysob ... 阅读全文

asp.net 应用中的Membership 重置密码问题

衣明志 发表于 , 阅读 (21704)
asp.net 2.0中引入的Membership机制给我们做web开发带来很多便利,使得我们在做很多项目开发时处理用户和角色及权限问题时减少了相当的工作量。不过我们开发中可能会碰到一个小小的问题如下: 我们知道MembershipUser中有如下重载的方法 MembershipUser.ResetPassword () :将用户密码重置为一个自动生成的新密码。 MembershipUser.ResetPassword (String passwordAnswer) ... 阅读全文

SQL2005数据库镜像之数据库用户问题

衣明志 发表于 , 阅读 (15953)
数据库镜像是SQL Server 2005的一个新特性,它允许你将一个SQL Server中的数据库内容镜像到另一个SQL Server上。它还让你可以在发生错误的时候,通过镜像数据库来进行错误恢复。镜像的拷贝是一个备用的拷贝,不能直接访问,它只用在错误恢复的情况下。SQL2005的这一特性给数据库系统维护人员带来了不错的实惠,而给最终用户的体验也是不错的。至于如何配置数据库镜像系统,大家可以到TechNet 中文网络广播中查找一下相关视频教程,尤其推荐大家去看看MVP牛可的 ... 阅读全文

使用sql判断指定表中的有标识的字段

衣明志 发表于 , 阅读 (14928)
一朋友问及一个问题:在SQL Server2000里如何通过sql语句查出指定数据表中自动编号的字段名,即包含标识的字段名。 其实使用一个简单的sql语句就搞定了: Select [name] From sysColumns Where id=object_id(N'TABLENAME') and Status=128 其中TABLENAME为你要查询的数据表名称。 如果想查询标识种子和标识增量的信息,应使用如下语句: Select [name],autoval ... 阅读全文

在1433 以外的任何端口上连接到SQL Server

衣明志 发表于 , 阅读 (14860)
SqlServer的默认开放端口是1433,但是由于实际开发的需要端口被设置为非1433,一些开发人员不知如何写该类型的连接字符串了。 其实解决这个问题很简单的,只需在连接字符串的Data Source=myServer后面加上逗号和端口号就可以了。例如User ID=sa;Initial Catalog=pubs;Data Source=myServer,1200,就是连接的1200端口的Sql Server服务器了。 具体的描述如下: 症状: 当您使用传输控制协议 ... 阅读全文

精彩的近乎完美的分页存储过程

衣明志 发表于 , 阅读 (14563)
CREATE PROCEDURE main_table_pwqzc ( @pagesize int, @pageindex int, @docount bit, @this_id int ) AS IF(@docount=1) BEGIN select count(id) from luntan where this_id=@this_id END ELSE BEGIN declare @indextable table(id ... 阅读全文

实现千万级数据的分页显示!

衣明志 发表于 , 阅读 (14944)
/* 经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下: exec GetRecordFromPage news,newsid,10,100000 news 为 表名, newsid 为关键字段, 使用时请先对 newsid 建立索引。 */ /* 函数名称: GetRecordFromPage 函数功能: 获取指定页的数据 参数说明 ... 阅读全文

一个多表关联写入的存储过程

衣明志 发表于 , 阅读 (14866)
近日被一个问题给疑惑:如何向一个数据库表内插入一个数据,然后获得插入后的产生的主键值,并将该值和其他参数写入另一个表,因为一直使用mysql, access等不含存储过程的数据库,所以百死不得其解,终于从日本朋友那里得到了使用存储过程实现解决办法,其实看看也挺简单的。 都怪自己学艺不精。 程序代码: CREATE procedure develop.insert_base_grid(@b_i int, @e_c int,@p_c varchar(192),@g_cint ... 阅读全文