
数据库技术
文章平均质量分 88
周公
周金桥,csdn网站ID是zhoufoxcn,网名周公,微信订阅号:zhoujinqiaoIT,2008-2012年度微软最有价值专家(MVP)。Csdn网站论坛专家,荣誉专家,曾任微软山西.net俱乐部技术负责人。在世界500强软件公司和上市民企担任管理岗位,有超过18年的开发及管理经验,擅长于程序性能和安全优化。2008独自编著《ASP.NET夜话》一书(2009年8月出版),2010合著《程序员的成长之路》一书(2011年5月出版)。
展开
-
关于权限的数据库设计
不管是在网站开发还是MIS系统开发中,涉及到多用户的软件系统都会遇到这个问题,如何比较优雅的解决这个问题也一直是大家经常探讨的热门话题,本文试着谈论一下自己的观点,希望和大家共同切磋。方法一: 用户表: T_UserInfo id name 对象表: T_Object id name 权限表 T_Access accessid原创 2007-03-21 11:33:00 · 11082 阅读 · 9 评论 -
Oracle SQL精妙SQL语句讲解
行列转换 行转列DROP TABLE t_change_lc;CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);INSERT INTO t_change_lc SELECT 001 card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FRO转载 2007-11-07 15:52:00 · 2571 阅读 · 2 评论 -
SQL SERVER存储过程解密方法
create PROCEDURE sp_decrypt(@objectName varchar(50))ASbeginset nocount on--优快云:j9988 copyright:2004.01.05 --V3.1--破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器--发现有错,请E_MAIL:优快云j9988@tom.combegin trandecl转载 2008-01-01 19:38:00 · 8867 阅读 · 2 评论 -
安装SQL Server 2005 时报“-2146233087”错误的解决办法
虽然MS SQL Server2005推出很长一段时间了,但是因为本人的本本内存太小(和本人一样,属于淘汰品了,呵呵)所以一直没有安装SQL2005,但是今天有优化一个项目,别人用的就是SQL2005,没有办法只好安装了。安装的时候有一个坎一直过不去,错误编号为“-2146233087”,查看了系统日志,描述如下:产品: Microsoft SQL Server 2005 Notification原创 2008-05-11 12:19:00 · 4753 阅读 · 5 评论 -
SQL Injection(SQL注入)介绍及SQL Injection攻击检测工具
1.关于SQL Injection 迄今为止,我基本没有看到谁写出一篇很完整的文章,或者说很成熟的解决方案(能做到 的人肯定很多,问题是没有流传开来,很遗憾) 我简单的说几点,希望启发大家思考,起到抛砖引玉的作用 一、SQL Injection的原理 SQL Injection的实现方法和破坏作用有很多,但万变不离其宗,其原理可以概括为一句话 :SQL Injection就是向服务器端提交事先转载 2008-08-06 23:35:00 · 12669 阅读 · 11 评论 -
在.NET中根据SQL Server系统表获取数据库管理信息
最近在做一些数据库管理维护方面的开发,需要了解一些有关数据库的管理信息,比如本机上运行了哪些数据库服务器实例,局域网内运行了哪些数据库服务器实例及每个数据库服务器下有多少数据库,每个数据库的物理文件大小及保存位置等等。结合了网上的一些资料和本人的多次实践,总结写出本篇。在这里要感谢一篇文章《sql server系统表详细说明》。首先是一些与系统表记录对应的实体类(注意代码中ColumnNameAt原创 2012-04-19 00:16:50 · 11102 阅读 · 7 评论 -
SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程、触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR,所以一直没有尝试。最近因为项目的原因,在这方面做了一个调研,现在在这里分享一下心得。首先要说明的是要在SQL Server中启用CLR必须是在SQL Server2005及以上版本,其次在默认情况下原创 2012-05-10 01:30:50 · 15015 阅读 · 10 评论 -
SQL Server编程系列(2):SMO常用对象的有关操作
在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的结构图:上图是一个完整的涉及到各种关系的结构图。不过它们之间的层次结构关系周公已经在上一篇做了简单概述。 在本篇中周公还是在上一篇的基础上再做稍微深入一点的介绍,在本篇中主要讲述如何获取数据库常见对象信息,并且如何利用SMO来进行一些日常操作:如创建Login,创建数原创 2012-05-23 02:18:45 · 8758 阅读 · 7 评论 -
SQL Server编程系列(1):SMO介绍
续篇:SQL Server编程系列(2):SMO常用对象的有关操作 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见,有也是一些零星的应用,特别是SSIS部分国内外的文章大都是讲解如何拖拽控件的,在开发过程中周公除了参阅SQL Server帮助文档、原创 2012-05-17 02:01:41 · 13993 阅读 · 26 评论 -
用C#打造自己的通用数据访问类库(续)
说明:此篇文章是给那些和我一样仍在使用ADO.NET访问数据库的.NET开发人员写的,因为某些原因,比如还在使用.NET3.0以下版本开发.NET应用或者所使用的数据库对ORM支持不是很好,或者是对ORM的性能有所怀疑(其实在访问量不是很大的情况下没有必要过分追求性能的极限)等等,这部分人仍在使用传统的ADO.NET来访问数据库,他们或手写或采用代码生成工具来生成实体类和增删改查的SQL语句,在将原创 2012-04-12 22:00:56 · 26545 阅读 · 66 评论 -
Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍
先假设有这么一个表:create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2(40) not null, DepartOrder INT原创 2007-08-28 16:45:00 · 155612 阅读 · 12 评论 -
周公优快云博客文章整理
说明:为方便朋友们查看本博客的文章,特地整理了本博客中周公认为值得一看的文章,不过有些文章因为年代久远且技术更新快的原因,里面所讲述的方法或者理论不再适合,请大家斟酌。ASP.NET在ASP.NET中使用Highcharts js图表(2011年04月07日)ASP.NET版Memcached监控工具(2011年03月29日)使用Memcached提高.NET应用程序的性能(2011年03月27日原创 2011-06-23 22:44:00 · 23197 阅读 · 35 评论 -
System.Data.SQLite数据库简介
SQLite介绍在介绍System.Data.SQLite之前需要介绍一下SQLite,SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义、表、索引和数据本身)都保存在一个单一的文件中。并且,SQLite是一个用C实现的类库,它在内存消耗、文件体积、简单性方面都有不错的表现,如果数据在10W条以下,查询速度也是相当快的。SQLite具有以下特征:实现多数原创 2010-04-08 21:26:00 · 38604 阅读 · 50 评论 -
值得收藏的Microsoft SQL Server下的SQL语句
SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice disk, testBa转载 2007-11-07 16:04:00 · 6344 阅读 · 5 评论 -
学习SQL SERVER的存储过程-之一认识存储过程语法
CREATE PROCEDURE创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。也可以创建在 Microsoft SQL Server启动时自动运行的存储过程。语法CREATE PROC [ EDURE ] procedure_na转载 2007-11-07 15:57:00 · 2812 阅读 · 1 评论 -
Sql Server 常用日期格式
进来因为开发原因,经常需要使用日期方面的比较和操作,整理了一下这方面的资料,供大家共享:SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.177 整理了一下SQL Server里面可能经常会用到的日期格式转换方法: 举例如下: select CO原创 2007-10-09 18:13:00 · 2738 阅读 · 2 评论 -
继续探讨数据库权限管理设计
一般的Web系统和MIS系统权限管理设计大概有这几种模式:用户+组+角色+权限用户+组+权限用户+角色+权限用户+权限最近看了别人的设计方法,大多以“整数”来表示权限值,如添加、浏览、删除和修改,分别用1、2、4、8这几个整数来代替,不过,各人的做法有所不同,举例如下:1.用2的n次幂组成权限值的集合,如1、2、4、8、16...,某用户的权限值为其子集中的整数之和,如 7=1+2+4,5=1+4原创 2007-03-24 14:45:00 · 4228 阅读 · 1 评论 -
真烂的Access及Access关键字
以前做数据库开发一直使用SQL Server和MySQL来开发,有比较好的工具,通常遇到关键字会以变色字体演示,一般到也不会出现什么问题,最近做一个小东东,想尝试一下Access,经常是在直接用SQL语句查询没有问题,一到程序里面就不行了,动不动就报“IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。”这个错误,查了半天才知道是因为使用了Acc原创 2007-03-28 19:52:00 · 3997 阅读 · 11 评论 -
一个用户SQL Server2000/2005的好工具_——数据库发布向导(Database Publishing Wizard)
很多数据库都提供提供数据库定义和数据导入功能,但不幸的是SQL Server却没有,导出成SQL语句只会到处数据库对象的定义,并不包含数据,为了达到导出数据的功能,我们通常只能通过数据库附加或者备份的功能实现,而无法像MySQL那样利用一个SQL语句就能完成数据库的定义和数据导入。好了, SQL Server现在也提供了这种功能了,它用到了一个软件数据库发布向导(Database Publis原创 2007-07-19 19:49:00 · 7140 阅读 · 5 评论 -
SQL Server里面如何导出包含数据的SQL脚本
通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。因为SQL Server并不包含这个功能,只能靠第三方的代码了。 以下存储过程可以实现:CREATE PROCEDURE dbo.UspOutputData原创 2007-04-17 17:50:00 · 5239 阅读 · 1 评论 -
在SQLSERVER企业管理器中如何创建触发器
下面将分别介绍在MS SQLServer 中如何用SQL Server 管理工具Enterprise Manager 和Transaction_SQL 来创建触发器。在创建触发器以前必须考虑到以下几个方面: CREATE TRIGGER 语句必须是批处理的第一个语句; 表的所有者具有创建触发器的缺省权限,表的所有者不能把该权限传给其它用户; 触发器是数据库对象,所以其命名必须符合命名规则; 尽管在原创 2007-04-21 11:30:00 · 4386 阅读 · 0 评论 -
inner join on, left join on, right join on讲解
1.理论只要两个表的公共字段有匹配值,就将这两个表中的记录组合起来。个人理解:以一个共同的字段求两个表中符合要求的交集,并将每个表符合要求的记录以共同的字段为牵引合并起来。语法FROM table1 INNER JOIN table2 ON table1 . field1 compopr table2 . field2INNER JOIN 操作包含以下部分:原创 2007-04-27 20:50:00 · 3698 阅读 · 7 评论 -
PowerDesign高级应用
1、去掉Oracle生成的SQL创建语句中的双引号 用powerdesigner导出orale数据库的建表sql时,默认会给表名和字段名加上双引号,如下图:这样给操作数据库带来很大的不便,解决的办法是设置Database菜单,然后点击Edit Current DBMS菜单,再依次点开Script->Format,然后找到CaseSensitivityUsingQuote将其设为NO,即可。如下图原创 2007-09-03 18:46:00 · 3280 阅读 · 0 评论 -
0RACLE的字段类型
字段类型 描述 字段长度及其缺省值 CHAR (size) 用于保存定长(size)字节的字符串数据。原创 2007-09-08 10:25:00 · 2958 阅读 · 0 评论 -
在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。 PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便原创 2007-09-07 16:35:00 · 16137 阅读 · 0 评论 -
关于SQL Server下无限多级别分类查询解决办法
在开发中经常会遇到无限级分类的问题,最常见的是一些无限级目录之类的,如果你对SQL Server还不是太熟悉或者还不太熟悉SQL语言的话,这将是一件很困难的事情,也许你最后能实现类似的功能,不过可能花费的时间很长,效率也不是很理想,下面的示例也许能给你一个启示。/***创建表****/CREATE TABLE [dbo].[Tree] ( [ID] [int] IDENTITY (1转载 2007-09-10 18:39:00 · 4696 阅读 · 3 评论 -
五种提高 SQL 性能的方法
本文节选自MSDN的文章《五种提高 SQL 性能的方法》,提出如何提高基于SQL Server应用程序的运行效率,非常值得推荐。对一些Traffic很高的应用系统而言,如何提高和改进SQL指令,是非常重要的,也是一个很好的突破点。*文章主要包括如下一些内容(如感兴趣,请直接访问下面的URL阅读完整的中英文文档):1, 从 INSERT 返回 IDENTITY SELECT @@IDENTITY2转载 2007-09-22 12:11:00 · 4512 阅读 · 0 评论 -
利用Power Designer反向数据库结构
Power Designer是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用Power Designer可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。 Power Designer的4种模型:概念数据模型 (CDM)原创 2007-10-22 19:01:00 · 7366 阅读 · 4 评论 -
在SQL SERVER中定时执行SQL语句,或者存储过程
在企业进销存管理的过程中,有些任务需每一个月做一次,或都每天做一次,比如月底备份库存档,做为下一个月的库存期初值。SQL AGENT就提供这样功能,实现了WINDOWS中的任务计划功能。 应用该技术的前提是,SQL AGENT代理服务需打开。 首先,在数据转换服务(DTS)中新建本次需执行的任务包。 在任务包右键选取调度包,对该任务需运行的时时进行定义。确定后,该任务会...原创 2007-01-26 18:25:00 · 2857 阅读 · 0 评论