今天小編給大家分享一篇關于asp中sql的備份和恢復詳細教程,感興趣的朋友跟小編一起來了解一下吧!
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
iferr0then
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
iferr0then
response.write"錯誤:"&err.Descripting
else
response.write"數據恢復成功!"
endif
%>
注:以上語句是把數據備份到磁盤的backup目錄下,文件名為backuptext.dat。
2、ASP中能修改SQL數據庫結構嗎?
答:ALTERTABLE
名稱
ALTERTABLE—更改表屬性
語法
ALTERTABLEtable[*]
ADD[COLUMN]columntype
ALTERTABLEtable[*]
ALTER[COLUMN]column{SETDEFAULTvalueDROPDEFAULT}
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{RESTRICTCASCADE}
增加或刪除表的約束(比如象檢查約束,唯一約束或外鍵約束)。要創建或刪除一個唯一約束,對應地創建或刪除一個唯一索引,要修改其他類型的約束,你需要重建和重載該表,使用 CREATETABLE 命令的其他參數.
例如,刪除表distributors的任何約束:
CREATETABLEtempASSELECT*FROMdistributors;
DROPTABLEdistributors;
CREATETABLEdistributorsASSELECT*FROMtemp;
DROPTABLEtemp;
ALTERTABLEtableDROP[COLUMN]column{RESTRICTCASCADE}
前,要刪除一個現存的列,表必須重新創建和重新裝載:
CREATETABLEtempASSELECTdid,cityFROMdistributors;
DROPTABLEdistributors;
CREATETABLEdistributors(
didDECIMAL(3)DEFAULT1,
nameVARCHAR(40)NOTNULL,
);
INSERTINTOdistributorsSELECT*FROMtemp;
DROPTABLEtemp;
重命名列/字段和表名是PostgreSQL擴展。SQL92沒有提供這些。
以上就是asp中sql的備份和恢復詳細教程,想必都了解了吧,更多相關內容請繼續關注錯新技術頻道。
新聞熱點
疑難解答