使用 SQL Server 时需要经常用到的几个设置选项
[ 2005-06-22 16:25:26 | 作者: admin ]
使用 SQL Server 时需要经常用到的几个设置选项
1. SET DEADLOCK_PRIORITY
2. SET LOCK_TIMEOUT
3.@@LOCK_TIMEOUT
4.SET IDENTITY_INSERT
5.SET IMPLICIT_TRANSACTIONS
6.SET NOCOUNT
7.@@ROWCOUNT
8.SET ROWCOUNT
9.SET TRANSACTION ISOLATION LEVEL
10.SET XACT_ABORT
1. SET DEADLOCK_PRIORITY
说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。
语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
...
阅读全文…
1. SET DEADLOCK_PRIORITY
2. SET LOCK_TIMEOUT
3.@@LOCK_TIMEOUT
4.SET IDENTITY_INSERT
5.SET IMPLICIT_TRANSACTIONS
6.SET NOCOUNT
7.@@ROWCOUNT
8.SET ROWCOUNT
9.SET TRANSACTION ISOLATION LEVEL
10.SET XACT_ABORT
1. SET DEADLOCK_PRIORITY
说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。
语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
...
阅读全文…
存储过程-临时表-视图的比较
[ 2005-06-22 16:24:27 | 作者: admin ]
存储过程可以提高利用性,一个存储过程可以被多次调用,并且可以节约网络传输速度。
视图是一种虚拟的表,视图只是一条预编译的SQL语句,并不保存实际数据,是以语句的形式存储的,可以提高安全性,可以是几个表中的部分字段的组合。
临时表是保存在tempdb中的实际的表,临时表是临时的一种表,并不需要占用空间,只是临时需要建立的一种表,不需要永久保存的。
视图是一种虚拟的表,视图只是一条预编译的SQL语句,并不保存实际数据,是以语句的形式存储的,可以提高安全性,可以是几个表中的部分字段的组合。
临时表是保存在tempdb中的实际的表,临时表是临时的一种表,并不需要占用空间,只是临时需要建立的一种表,不需要永久保存的。
sql server 中的 SET NOCOUNT 问题
[ 2005-06-22 16:23:59 | 作者: admin ]
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。
即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。
当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具(QA)执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
如果存储过程中有多个语句,则默认情况下,SQL ...
阅读全文…
即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。
当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具(QA)执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
如果存储过程中有多个语句,则默认情况下,SQL ...
阅读全文…
实数的判断 Decimal 类型
[ 2005-06-20 22:27:26 | 作者: admin ]
//本月累计 = 本月 + 上月累计
if( ! Convert.ToDecimal(Request.Form["d05_03"]).Equals( Convert.ToDecimal(Convert.ToSingle(Request.Form["d05_01"]) + lastMonthData.D05_03)) )
{
strErrMsg+="销售收入-数据验证没用通过: 本月累计("+ Request.Form["d05_03"] +")=本月("+ Request.Form["d05_01"] +")+上月累计("+ lastMonthData.D05_03.ToString() +")\\n";
}
if( ! Convert.ToDecimal(Request.Form["d05_03"]).Equals( Convert.ToDecimal(Convert.ToSingle(Request.Form["d05_01"]) + lastMonthData.D05_03)) )
{
strErrMsg+="销售收入-数据验证没用通过: 本月累计("+ Request.Form["d05_03"] +")=本月("+ Request.Form["d05_01"] +")+上月累计("+ lastMonthData.D05_03.ToString() +")\\n";
}
access导入dbf时遇到问题
[ 2005-06-16 09:52:57 | 作者: admin ]
提示格式不正确的时候,可以安装 BDE5.0 数据库引擎
Sql Server实用操作维护小技巧集合
[ 2005-06-15 16:18:06 | 作者: admin ]
Sql Server实用操作小技巧集合
包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等
(一)挂起操作
在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:
到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
删除PendingFileRenameOperations
(二)收缩数据库
--重建索引
DBCC REINDEX
DBCC INDEXDEFRAG
--收缩数据和日志
DBCC SHRINKDB
DBCC SHRINKFILE
(三)压缩数据库
dbcc shrinkdatabase(dbname)
(四)转移数据库给新用户以已存在用户权限
...
阅读全文…
包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等
(一)挂起操作
在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:
到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
删除PendingFileRenameOperations
(二)收缩数据库
--重建索引
DBCC REINDEX
DBCC INDEXDEFRAG
--收缩数据和日志
DBCC SHRINKDB
DBCC SHRINKFILE
(三)压缩数据库
dbcc shrinkdatabase(dbname)
(四)转移数据库给新用户以已存在用户权限
...
阅读全文…
一个效率很差的存储过程例子
[ 2005-06-15 16:12:08 | 作者: admin ]
一个效率很差的存储过程
CREATE PROCEDURE sp_vbnet_compute AS
declare @matnr varchar(18),@werks varchar(4),@kriqi datetime,@meins varchar(10),@matnrtemp varchar(18)
declare @bomatnr varchar(18),@bomsehl varchar(10),@menge float
declare @price float,@danw varchar(20)
declare @umrez float,@aaprice float,@jjprice float,@arate float,@jrate float,@asy float,@jsy float
declare @cpjg float,@umren float
...
阅读全文…
CREATE PROCEDURE sp_vbnet_compute AS
declare @matnr varchar(18),@werks varchar(4),@kriqi datetime,@meins varchar(10),@matnrtemp varchar(18)
declare @bomatnr varchar(18),@bomsehl varchar(10),@menge float
declare @price float,@danw varchar(20)
declare @umrez float,@aaprice float,@jjprice float,@arate float,@jrate float,@asy float,@jsy float
declare @cpjg float,@umren float
...
阅读全文…
SQL-SERVER2000全局变量
[ 2005-06-15 16:10:56 | 作者: admin ]
全局变量是一种特殊类型的变量,服务器将维护这些变量的值。全局变量以@@前缀开头,不必进行声明,它们属于系统定义的函数。
1.@@rowcount 在每一个T-SQL语句之后,服务器都要将这个变量的值设置为该语句所影响到的总的记录条数,它可以用来确认选择操作的成功与否: Select a,b,c into tab1 from tab2 where a=2 If @@rowcount=0 Print “no rows were copied”
2.@@error 在每一个T-SQL语句之后,服务器都将这个变量的值设置为一个整形值: 0 表示语句执行成功错误编码 该语句执行失败时返回相应的错误编码。在microsoft sql server环境中,此全局变量是所有用于处理错误的基础。 Update tab set a=3 where a=2 Select @interrorcode=@@error
...
阅读全文…
1.@@rowcount 在每一个T-SQL语句之后,服务器都要将这个变量的值设置为该语句所影响到的总的记录条数,它可以用来确认选择操作的成功与否: Select a,b,c into tab1 from tab2 where a=2 If @@rowcount=0 Print “no rows were copied”
2.@@error 在每一个T-SQL语句之后,服务器都将这个变量的值设置为一个整形值: 0 表示语句执行成功错误编码 该语句执行失败时返回相应的错误编码。在microsoft sql server环境中,此全局变量是所有用于处理错误的基础。 Update tab set a=3 where a=2 Select @interrorcode=@@error
...
阅读全文…