# MySQL-Front 5.1 (Build 4.2)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS */;
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
# Host: localhost Database: scanmaster
# ------------------------------------------------------
# Server version 5.1.46-community
#
# Source for table tabapp
#
DROP TABLE IF EXISTS `tabapp`;
CREATE TABLE `tabapp` (
`appid` int(4) NOT NULL AUTO_INCREMENT,
`appname` varchar(32) NOT NULL DEFAULT '',
`apppath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`outputpath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`indexed` int(4) NOT NULL DEFAULT '0',
......
# MySQL-Front 5.1 (Build 4.2)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS */;
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
# Host: localhost Database: scanmaster
# ------------------------------------------------------
# Server version 5.1.46-community
#
# Source for table tabapp
#
DROP TABLE IF EXISTS `tabapp`;
CREATE TABLE `tabapp` (
`appid` int(4) NOT NULL AUTO_INCREMENT,
`appname` varchar(32) NOT NULL DEFAULT '',
`apppath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`outputpath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`indexed` int(4) NOT NULL DEFAULT '0',
......
恢复模式是数据库的一种特性,它控制着数据库备份和还原的基本行为.
sql server 提供了三种恢复模式,他们决定了有多少和什么样的数据可以被备份下来.
1.简单恢复模式
主要应用于小型数据库和不经常改变的数据
2.完整恢复模式
可以在最大范围内防止出现故障时丢失数据,它包括数据库备份和食物日志备份,并提供全面保护.这个模式使用数据库和所有日志的备份恢复数据库
3.大容量日志恢复模式
在完整恢复模式下,所有大批量的数据导入导出操作产生的日志更加的少,他会进行日志的最小化记录,部分事务不会被记录下来.
完整恢复模式是默认的恢复模式.
备份模式在sql server中也有三种类型(它决定备份哪些数据)
1.完整备份
备份包括这个数据库,部分事务日志,数据库结构和文件结构.完整备份代表的是备份完成时刻的数据库状态
2.差异备份
它备份在上一次完整备份之后变化的数据
3.事务日志备份
备份事务日志中的数据 ......
今天抽出一点时间解释几个关于SQL日志的概念,他们也经常使初学者望而止步,反正计算机的术语都是很抽象的,所以第一感觉就是头疼,然后然后几次后就没感觉了.以下有些是从书上摘抄的,有的是从网上找的算是借花献佛吧!!
物理日志文件:
这个比较好理解,实实在在的东西,数据库目录下面的.ldf文件就是,有些人喜欢改后缀,感觉不大好,数据库的事务日志记录就在这里面
虚拟日志:
相信多数人有这个感觉,虚拟这个字眼总是神秘的代名词,虚拟个饭岛爱我喜欢,但虚拟日志,虚拟内存,虚拟。。。。,看了就讨厌。解释应该是这样的,对于一个或多个连续的物理日志文件,SQL SERVER在这些文件的内部又划分成了多个小的文件,称为虚拟日志文件,他是日志文件收缩和日志截断的最小单位
,比如物理日志文件是400M,内部划分了4个100M的虚拟文件,收缩时你得到的是300M,200M,不可能得到239M,对于一个物理文件,会划分成多少个虚拟文件,这个由SQL自己维护,唯一可以人工干预的是指定较大的物理日志文件,并指定较大的增长比例,这样可能虚拟文件的块头会大点,数量会少点,系统的维护开销会低一点
逻辑日志:
  ......
Truncate Logs for SQL Server 2008
I had previously posted how to Truncate Logs for SQL Server 2005. Unfortunately, this method does not work in SQL Server 2008. The reason is because the “WITH TRUNCATE_ONLY” command is no longer in SQL 2008. Assuming you run in full recovery mode, the new script to do this is:
USE [{DatabaseName}]
GO
ALTER DATABASE [{DatabaseName}] SET RECOVERY SIMPLE
GO
DBCC SHRINKFILE({TransactionLogLogicalName})
GO
ALTER DATABASE [{DatabaseName}] SET RECOVERY FULL
GO
Simply setting the database mode into simple recovery mode performs the actual truncation but the file is not shrunk by that. DBCC SHRINKFILE will take care of that second step. And don’t forget to put it back into full recovery mode at the end!!
......
PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别
url:http://hi.baidu.com/1413/blog/item/a521251f7e5993c4a686696b.html
数据库 oracle for update of 和 for update区别
select * from TTable1 for update 锁定表的所有行,只能读不能写
2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录
4 select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update 锁定两个表的中满足条件的行
5. select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update of a.pkid 只锁定Table1中满足条件的行
for update 是把所有的表都锁点 for update of 根据of 后表的条件锁定相对应的表
-----------
关于NOWAIT(如果一定要用FOR UPDATE,我更建议加上NOWAIT)
当有LOCK冲突时会提示错误并结束STATEMENT而不是在那里等待(比如:要查的行已经被其它事务锁了,当前的锁事务与之冲突,加上nowait,当前的事务会结束会提示错误并立即结束 STATEMENT而不再等待).
......
PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别
url:http://hi.baidu.com/1413/blog/item/a521251f7e5993c4a686696b.html
数据库 oracle for update of 和 for update区别
select * from TTable1 for update 锁定表的所有行,只能读不能写
2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录
4 select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update 锁定两个表的中满足条件的行
5. select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update of a.pkid 只锁定Table1中满足条件的行
for update 是把所有的表都锁点 for update of 根据of 后表的条件锁定相对应的表
-----------
关于NOWAIT(如果一定要用FOR UPDATE,我更建议加上NOWAIT)
当有LOCK冲突时会提示错误并结束STATEMENT而不是在那里等待(比如:要查的行已经被其它事务锁了,当前的锁事务与之冲突,加上nowait,当前的事务会结束会提示错误并立即结束 STATEMENT而不再等待).
......
哎,还是上周的事情了,csdn的博客最近咋老是打不开呢!
基本语句:Alter table 表名 drop Column 字段名
另单单是这样是不行滴,还要删除对应的关系滴。下面就把查找到的那篇文章引用下吧!
原文地址:http://hi.baidu.com/lisky119/blog/item/3c348c082573949c0a7b82d1.html
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: lw
-- Create date: 2009-07-31
-- Description: 强行删除表列,【无错误】【删除表的列之前一定要删除依赖,索引】,不然会报很多错误
-- =============================================
alter PROCEDURE [dbo].[Delete_Column_Constraint]
(
@tablename nvarchar(50),
@columnname nvarchar(50)
)
AS
--删除某字段的所有关系
declare tb cursor local for
--默认值约束
select sql='alter table ['+b.name+'] drop constraint ['+d.name+']'
from ......