ASP中怎么实现SQL数据库备份、恢复!
ASP中怎么实现SQL数据库备份、恢复!
发布时间:2016-12-29 来源:查字典编辑
摘要:1、ASP中怎么实现SQL数据库备份、恢复!答:asp在线备份sqlserver数据库:1、备份2、恢复注:以上语句是把数据备份到磁盘的ba...

1、ASP中怎么实现SQL数据库备份、恢复!

答:asp在线备份sqlserver数据库:

1、备份

<%

SQL="backupdatabase数据库名todisk='"&Server.MapPath("backup")&""&"backuptext.dat"&"'"

setcnn=Server.createobject("adodb.connection")

cnn.open"driver={SQLServer};Server=服务器名;uid=sa;pwd="

cnn.executeSQL

onerrorresumenext

iferr<>0then

response.write"错误:"&err.Descripting

else

response.write"数据备份成功!"

endif

%>

2、恢复

<%

SQL="Restoredatabase数据库名fromdisk='"&Server.MapPath("backup")&""&"backuptext.dat"&"'"

setcnn=Server.createobject("adodb.connection")

cnn.open"driver={SQLServer};Server=服务器名;uid=sa;pwd="

cnn.executeSQL

onerrorresumenext

iferr<>0then

response.write"错误:"&err.Descripting

else

response.write"数据恢复成功!"

endif

%>

注:以上语句是把数据备份到磁盘的backup目录下,文件名为backuptext.dat。

2、ASP中能修改SQL数据库结构吗?

答:ALTERTABLE

名称

ALTERTABLE—更改表属性

语法

ALTERTABLEtable[*]

ADD[COLUMN]columntype

ALTERTABLEtable[*]

ALTER[COLUMN]column{SETDEFAULTvalue|DROPDEFAULT}

ALTERTABLEtable[*]

RENAME[COLUMN]columnTOnewcolumn

ALTERTABLEtable

RENAMETOnewtable

ALTERTABLEtable

ADDtableconstraintdefinition

Inputs

table

试图更改的现存表的名称.

column

现存或新的列名称.

type

新列的类型.

newcolumn

现存列的新名称.

newtable

表的新名称.

tableconstraintdefinition

表的新的约束定义.

Newtableconstraintforthetable

输出

ALTER

从被更名的列或表返回的信息.

ERROR

如果一个列或表不存在返回的信息.

描述

ALTERTABLE变更一个现存表的定义.ADDCOLUMN形式用与CREATETABLE一样的语法向表中增加一个新列/字段。ALTERCOLUMN形式允许你从列/字段中设置或者删除缺省(值)。注意缺省(值)只对新插入的行有效。RENAME子句可以在不影响相关表中任何数据的情况下更改一个表或者列/字段的名称。因此,表或列/字段在此命令执行后仍将是相同尺寸和类型。ADDtableconstraintdefinition子句用与CREATETABLE一样的语法向表中增加一个新的约束。

如果要改变表的属性,你必须是表的所有者.

注意

COLUMN关键字是多余的,可以省略.

如果"*"跟在一个表名后面,表示该命令要对该表和所有继承级别低于该表的表进行操作;缺省时,该属性(更改)不会增加到任何子表或修改任何子表的相关名称。当增加或修改一个上级表(译注:继承级别高的表)的属性时总是应该这样的。否则,象下面这样的在继承级上进行的查询

SELECTNewColumnFROMSuperClass*

将不能工作,因为子表会比上级表少一个属性。

在目前的实现里,新列/字段的缺省(值)和约束子句会被忽略。你可以随后用ALTERTABLE的SETDEFAULT形式设置缺省(值)。(你还不得不用UPDATE把已存在行更新为缺省值。)

在目前的实现里,只有FOREIGNKEY约束可以增加到表中.要创建或者删除一个唯一约束,可以创建一个唯一索引(参阅CREATEINDEX).要想增加check(检查)约束,你需要重建和重载该表,用的参数是CREATETABLE命令的其他参数.

要修改表的结构,你必须是表的所有人。不允许更改系统表结构的任何部分。PostgreSQL用户手册里有关于继承的更多信息.

请参考CREATETABLE部分获取更多有效参数的描述.

用法

向表中增加一个VARCHAR列:

ALTERTABLEdistributorsADDCOLUMNaddressVARCHAR(30);

对现存列改名:

ALTERTABLEdistributorsRENAMECOLUMNaddressTOcity;

对现存表改名:

ALTERTABLEdistributorsRENAMETOsuppliers;

向表中增加一个外键约束:

ALTERTABLEdistributorsADDCONSTRAINTdistfkFOREIGNKEY(address)REFERENCESaddresses(address)MATCHFULL

兼容性

SQL92ADDCOLUMN形式是兼容的,除了上面说的缺省(值)和约束外。ALTERCOLUMN形式是完全兼容的。

SQL92对ALTERTABLE声明了一些附加的Postgres目前还不直接支持的功能:

ALTERTABLEtableDROPCONSTRAINTconstraint{RESTRICT|CASCADE}

增加或删除表的约束(比如象检查约束,唯一约束或外键约束)。要创建或删除一个唯一约束,对应地创建或删除一个唯一索引,要修改其他类型的约束,你需要重建和重载该表,使用CREATETABLE命令的其他参数.

例如,删除表distributors的任何约束:

CREATETABLEtempASSELECT*FROMdistributors;

DROPTABLEdistributors;

CREATETABLEdistributorsASSELECT*FROMtemp;

DROPTABLEtemp;

ALTERTABLEtableDROP[COLUMN]column{RESTRICT|CASCADE}

前,要删除一个现存的列,表必须重新创建和重新装载:

CREATETABLEtempASSELECTdid,cityFROMdistributors;

DROPTABLEdistributors;

CREATETABLEdistributors(

didDECIMAL(3)DEFAULT1,

nameVARCHAR(40)NOTNULL,

);

INSERTINTOdistributorsSELECT*FROMtemp;

DROPTABLEtemp;

重命名列/字段和表名是PostgreSQL扩展。SQL92没有提供这些。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新ASP教程学习
热门ASP教程学习
编程开发子分类