文章分类 -  数据库

摘要:因项目需要,在存储过程中做容错处理,使数据操作异常时程序仍然可以继续执行,所以在思考这个问题,经测试后才发现的异常处理真的很弱。   所以把错误处理完全交给存储过程是不可能的,还是要配合调用程序的错误处理功能才能完成.  SQL2005中新增try ... catch ... 也是如此,出现严重错误时一样无法捕获。以下是引用邹大哥的测试示例:--演示1 --测试的存储过程1 create pr... 阅读全文
posted @ 2009-10-26 17:55 #天下无双# 阅读(505) 评论(0) 推荐(0) 编辑
摘要:1、返回的是连接的数据库名and db_name()>02、作用是获取连接用户名and user>03、将数据库备份到Web目录下面;backup database 数据库名 to disk='c:\inetpub\wwwroot\1.db';--4、显示SQL系统版本and 1=(select @@VERSION) 或and 1=convert(int,@@version)--5、判... 阅读全文
posted @ 2009-10-21 19:22 #天下无双# 阅读(31274) 评论(0) 推荐(4) 编辑
摘要:1.创建xml字段在表xmlTest内创建一个字段,命名_x,设置数据类型为xml。2.写入xmlinsert into xmlTest (_x) values('<root><item attr1="a1" attr2="a2">item11</item><item attr1="a1" attr2="a2">item12</item>... 阅读全文
posted @ 2009-10-19 15:46 #天下无双# 阅读(1030) 评论(0) 推荐(0) 编辑
摘要:返回 table 的用户定义函数可以是替代视图的强大方式。返回 table 的用户定义函数可用在 Transact-SQL 查询中允许表或视图表达式的地方。视图限制于单个 SELECT 语句,而用户定义函数可包含允许比视图中具有的逻辑功能更强大的附加语句。 返回 table 的用户定义函数还可替换返回单个结果集的存储过程。可在 Transact-SQL 语句的 FROM 子句中引用由用户定义函数返... 阅读全文
posted @ 2009-10-04 11:35 #天下无双# 阅读(398) 评论(0) 推荐(0) 编辑
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t w... 阅读全文
posted @ 2009-10-04 11:34 #天下无双# 阅读(200) 评论(0) 推荐(0) 编辑
摘要:SQL Server 2005的XmL数据类型之基础篇一、引言如今,在SQL Server 2005中,XML成为第一流的数据类型。借助于基于XML模式的强类型化支持和基于服务器端的XML数据校验功能,现在,开发者可以对存储的XML文档进行轻松的远程修改。作为数据库开发者,许多人都必须大量地涉及XML。  如今,在SQL Server 2005中,你能以一种新的数据类型的形式把XML存储在数据库中... 阅读全文
posted @ 2009-10-04 11:34 #天下无双# 阅读(408) 评论(0) 推荐(0) 编辑
摘要:最近用到,在网上查了下资料注意加粗部分,sp_executesql 的参数必须为UNICODE,即NCHAR,NVARCHAR,NTEXT型,否则报错动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from t... 阅读全文
posted @ 2009-10-04 11:33 #天下无双# 阅读(1005) 评论(0) 推荐(0) 编辑
摘要:在存储过程中动态创建表如果不使用参数的话很好创建。方法如下: Create procedure [dbo].[Logs]   AS   begin transaction   --创建临时表,直接指定表名   create table temp_tablename   (   id int primary key,   da varchar(300),   fs int   )   declare... 阅读全文
posted @ 2009-10-04 11:32 #天下无双# 阅读(992) 评论(0) 推荐(0) 编辑
摘要:1.获取所有数据库名: (1)、Select Name FROM Master..SysDatabases order by Name 2.获取所有表名(单数据库): (1)、Select Name FROM SysObjects Where XType='U' orDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; (2)、SELECT n... 阅读全文
posted @ 2009-10-04 11:31 #天下无双# 阅读(230) 评论(0) 推荐(0) 编辑
摘要:比如 select @status = N'stopped'那么其中的字符串 stopped 前面为什么要加 N 呢?而且我们发现有些地方加 N 与否都没有影响,有些地方又必须加 N。N 在这里表示 Unicode,就是双字节字符。对于西文字符,用一个字节来存储过足够了,对于东方文字字符,就需要两个字节来存储。Unicode 为了统一、规范、方便、兼容,就规定西文字符也用两个字节来存储。也就是说加... 阅读全文
posted @ 2009-10-04 11:31 #天下无双# 阅读(499) 评论(0) 推荐(0) 编辑
摘要:其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程。也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据... 阅读全文
posted @ 2009-10-04 11:30 #天下无双# 阅读(7392) 评论(3) 推荐(0) 编辑