ASP中怎么實(shí)現(xiàn)SQL數(shù)據(jù)庫(kù)備份、恢復(fù)!
更新時(shí)間:2007年03月06日 00:00:00 作者:
1、ASP中怎么實(shí)現(xiàn)SQL數(shù)據(jù)庫(kù)備份、恢復(fù)!
答:asp在線備份sql server數(shù)據(jù)庫(kù):
1、備份
<%
SQL="backup database 數(shù)據(jù)庫(kù)名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=服務(wù)器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯(cuò)誤:"&err.Descripting
else
response.write "數(shù)據(jù)備份成功!"
end if
%>
2、恢復(fù)
<%
SQL="Restore database 數(shù)據(jù)庫(kù)名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=服務(wù)器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯(cuò)誤:"&err.Descripting
else
response.write "數(shù)據(jù)恢復(fù)成功!"
end if
%>
注:以上語(yǔ)句是把數(shù)據(jù)備份到磁盤(pán)的backup目錄下,文件名為backuptext.dat。
2、ASP中能修改SQL數(shù)據(jù)庫(kù)結(jié)構(gòu)嗎?
答:ALTER TABLE
名稱
ALTER TABLE — 更改表屬性
語(yǔ)法
ALTER TABLE table [ * ]
ADD [ COLUMN ] column type
ALTER TABLE table [ * ]
ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE table [ * ]
RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
RENAME TO newtable
ALTER TABLE table
ADD table constraint definition
Inputs
table
試圖更改的現(xiàn)存表的名稱.
column
現(xiàn)存或新的列名稱.
type
新列的類型.
newcolumn
現(xiàn)存列的新名稱.
newtable
表的新名稱.
table constraint definition
表的新的約束定義.
New table constraint for the table
輸出
ALTER
從被更名的列或表返回的信息.
ERROR
如果一個(gè)列或表不存在返回的信息.
描述
ALTER TABLE 變更一個(gè)現(xiàn)存表的定義.ADD COLUMN 形式用與 CREATE TABLE一樣的語(yǔ)法向表中增加一個(gè)新列/字段。ALTER COLUMN 形式允許你從列/字段中設(shè)置或者刪除缺?。ㄖ担W⒁馊笔。ㄖ担┲粚?duì)新插入的行有效。RENAME 子句可以在不影響相關(guān)表中任何數(shù)據(jù)的情況下更改一個(gè)表或者列/字段的名稱。因此,表或列/字段在此命令執(zhí)行后仍將是相同尺寸和類型。ADD table constraint definition 子句用與 CREATE TABLE一樣的語(yǔ)法向表中增加一個(gè)新的約束。
如果要改變表的屬性,你必須是表的所有者.
注意
COLUMN 關(guān)鍵字是多余的,可以省略.
如果"*"跟在一個(gè)表名后面,表示該命令要對(duì)該表和所有繼承級(jí)別低于該表的表進(jìn)行操作;缺省時(shí),該屬性(更改)不會(huì)增加到任何子表或修改任何子表的相關(guān)名稱。當(dāng)增加或修改一個(gè)上級(jí)表(譯注:繼承級(jí)別高的表)的屬性時(shí)總是應(yīng)該這樣的。否則,象下面這樣的在繼承級(jí)上進(jìn)行的查詢
SELECT NewColumn FROM SuperClass*
將不能工作,因?yàn)樽颖頃?huì)比上級(jí)表少一個(gè)屬性。
在目前的實(shí)現(xiàn)里,新列/字段的缺省(值)和約束子句會(huì)被忽略。你可以隨后用 ALTER TABLE 的 SET DEFAULT 形式設(shè)置缺?。ㄖ担#氵€不得不用 UPDATE 把已存在行更新為缺省值。)
在目前的實(shí)現(xiàn)里,只有 FOREIGN KEY 約束可以增加到表中.要?jiǎng)?chuàng)建或者刪除一個(gè)唯一約束,可以創(chuàng)建一個(gè)唯一索引(參閱 CREATE INDEX).要想增加 check (檢查)約束,你需要重建和重載該表,用的參數(shù)是 CREATE TABLE 命令的其他參數(shù).
要修改表的結(jié)構(gòu),你必須是表的所有人。不允許更改系統(tǒng)表結(jié)構(gòu)的任何部分。PostgreSQL 用戶手冊(cè) 里有關(guān)于繼承的更多信息.
請(qǐng)參考 CREATE TABLE 部分獲取更多有效參數(shù)的描述.
用法
向表中增加一個(gè) VARCHAR 列:
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
對(duì)現(xiàn)存列改名:
ALTER TABLE distributors RENAME COLUMN address TO city;
對(duì)現(xiàn)存表改名:
ALTER TABLE distributors RENAME TO suppliers;
向表中增加一個(gè)外鍵約束:
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL
兼容性
SQL92ADD COLUMN 形式是兼容的,除了上面說(shuō)的缺省(值)和約束外。ALTER COLUMN 形式是完全兼容的。
SQL92 對(duì) ALTER TABLE 聲明了一些附加的Postgres目前還不直接支持的功能:
ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE }
增加或刪除表的約束(比如象檢查約束,唯一約束或外鍵約束)。要?jiǎng)?chuàng)建或刪除一個(gè)唯一約束,對(duì)應(yīng)地創(chuàng)建或刪除一個(gè)唯一索引,要修改其他類型的約束,你需要重建和重載該表,使用 CREATE TABLE 命令的其他參數(shù).
例如,刪除表 distributors 的任何約束:
CREATE TABLE temp AS SELECT * FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors AS SELECT * FROM temp;
DROP TABLE temp;
ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE }
前,要?jiǎng)h除一個(gè)現(xiàn)存的列,表必須重新創(chuàng)建和重新裝載:
CREATE TABLE temp AS SELECT did, city FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors (
did DECIMAL(3) DEFAULT 1,
name VARCHAR(40) NOT NULL,
);
INSERT INTO distributors SELECT * FROM temp;
DROP TABLE temp;
重命名列/字段和表名是 PostgreSQL 擴(kuò)展。SQL92 沒(méi)有提供這些。
答:asp在線備份sql server數(shù)據(jù)庫(kù):
1、備份
<%
SQL="backup database 數(shù)據(jù)庫(kù)名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=服務(wù)器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯(cuò)誤:"&err.Descripting
else
response.write "數(shù)據(jù)備份成功!"
end if
%>
2、恢復(fù)
<%
SQL="Restore database 數(shù)據(jù)庫(kù)名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=服務(wù)器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯(cuò)誤:"&err.Descripting
else
response.write "數(shù)據(jù)恢復(fù)成功!"
end if
%>
注:以上語(yǔ)句是把數(shù)據(jù)備份到磁盤(pán)的backup目錄下,文件名為backuptext.dat。
2、ASP中能修改SQL數(shù)據(jù)庫(kù)結(jié)構(gòu)嗎?
答:ALTER TABLE
名稱
ALTER TABLE — 更改表屬性
語(yǔ)法
ALTER TABLE table [ * ]
ADD [ COLUMN ] column type
ALTER TABLE table [ * ]
ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE table [ * ]
RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
RENAME TO newtable
ALTER TABLE table
ADD table constraint definition
Inputs
table
試圖更改的現(xiàn)存表的名稱.
column
現(xiàn)存或新的列名稱.
type
新列的類型.
newcolumn
現(xiàn)存列的新名稱.
newtable
表的新名稱.
table constraint definition
表的新的約束定義.
New table constraint for the table
輸出
ALTER
從被更名的列或表返回的信息.
ERROR
如果一個(gè)列或表不存在返回的信息.
描述
ALTER TABLE 變更一個(gè)現(xiàn)存表的定義.ADD COLUMN 形式用與 CREATE TABLE一樣的語(yǔ)法向表中增加一個(gè)新列/字段。ALTER COLUMN 形式允許你從列/字段中設(shè)置或者刪除缺?。ㄖ担W⒁馊笔。ㄖ担┲粚?duì)新插入的行有效。RENAME 子句可以在不影響相關(guān)表中任何數(shù)據(jù)的情況下更改一個(gè)表或者列/字段的名稱。因此,表或列/字段在此命令執(zhí)行后仍將是相同尺寸和類型。ADD table constraint definition 子句用與 CREATE TABLE一樣的語(yǔ)法向表中增加一個(gè)新的約束。
如果要改變表的屬性,你必須是表的所有者.
注意
COLUMN 關(guān)鍵字是多余的,可以省略.
如果"*"跟在一個(gè)表名后面,表示該命令要對(duì)該表和所有繼承級(jí)別低于該表的表進(jìn)行操作;缺省時(shí),該屬性(更改)不會(huì)增加到任何子表或修改任何子表的相關(guān)名稱。當(dāng)增加或修改一個(gè)上級(jí)表(譯注:繼承級(jí)別高的表)的屬性時(shí)總是應(yīng)該這樣的。否則,象下面這樣的在繼承級(jí)上進(jìn)行的查詢
SELECT NewColumn FROM SuperClass*
將不能工作,因?yàn)樽颖頃?huì)比上級(jí)表少一個(gè)屬性。
在目前的實(shí)現(xiàn)里,新列/字段的缺省(值)和約束子句會(huì)被忽略。你可以隨后用 ALTER TABLE 的 SET DEFAULT 形式設(shè)置缺?。ㄖ担#氵€不得不用 UPDATE 把已存在行更新為缺省值。)
在目前的實(shí)現(xiàn)里,只有 FOREIGN KEY 約束可以增加到表中.要?jiǎng)?chuàng)建或者刪除一個(gè)唯一約束,可以創(chuàng)建一個(gè)唯一索引(參閱 CREATE INDEX).要想增加 check (檢查)約束,你需要重建和重載該表,用的參數(shù)是 CREATE TABLE 命令的其他參數(shù).
要修改表的結(jié)構(gòu),你必須是表的所有人。不允許更改系統(tǒng)表結(jié)構(gòu)的任何部分。PostgreSQL 用戶手冊(cè) 里有關(guān)于繼承的更多信息.
請(qǐng)參考 CREATE TABLE 部分獲取更多有效參數(shù)的描述.
用法
向表中增加一個(gè) VARCHAR 列:
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
對(duì)現(xiàn)存列改名:
ALTER TABLE distributors RENAME COLUMN address TO city;
對(duì)現(xiàn)存表改名:
ALTER TABLE distributors RENAME TO suppliers;
向表中增加一個(gè)外鍵約束:
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL
兼容性
SQL92ADD COLUMN 形式是兼容的,除了上面說(shuō)的缺省(值)和約束外。ALTER COLUMN 形式是完全兼容的。
SQL92 對(duì) ALTER TABLE 聲明了一些附加的Postgres目前還不直接支持的功能:
ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE }
增加或刪除表的約束(比如象檢查約束,唯一約束或外鍵約束)。要?jiǎng)?chuàng)建或刪除一個(gè)唯一約束,對(duì)應(yīng)地創(chuàng)建或刪除一個(gè)唯一索引,要修改其他類型的約束,你需要重建和重載該表,使用 CREATE TABLE 命令的其他參數(shù).
例如,刪除表 distributors 的任何約束:
CREATE TABLE temp AS SELECT * FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors AS SELECT * FROM temp;
DROP TABLE temp;
ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE }
前,要?jiǎng)h除一個(gè)現(xiàn)存的列,表必須重新創(chuàng)建和重新裝載:
CREATE TABLE temp AS SELECT did, city FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors (
did DECIMAL(3) DEFAULT 1,
name VARCHAR(40) NOT NULL,
);
INSERT INTO distributors SELECT * FROM temp;
DROP TABLE temp;
重命名列/字段和表名是 PostgreSQL 擴(kuò)展。SQL92 沒(méi)有提供這些。
相關(guān)文章
ASP對(duì)網(wǎng)頁(yè)進(jìn)行保護(hù)的簡(jiǎn)單代碼 ip
ASP對(duì)網(wǎng)頁(yè)進(jìn)行保護(hù)的簡(jiǎn)單代碼 ip...2007-06-06
再發(fā)幾個(gè)ASP不錯(cuò)的函數(shù)
再發(fā)幾個(gè)ASP不錯(cuò)的函數(shù)...2007-08-08
錯(cuò)誤類型:Provider (0x80004005)未指定的錯(cuò)誤 的一個(gè)處理方法
一般情況下asp可以正常運(yùn)行,但只要連接數(shù)據(jù)庫(kù)就提示,Microsoft JET Database Engine 錯(cuò)誤'80004005'2007-04-04
ADO存取數(shù)據(jù)庫(kù)時(shí)如何分頁(yè)顯示
這篇文章主要介紹了ADO存取數(shù)據(jù)庫(kù)時(shí)如何分頁(yè)顯示,需要的朋友可以參考下2015-10-10
asp實(shí)現(xiàn)讀取數(shù)據(jù)庫(kù)輸出json代碼
這篇文章主要介紹了asp實(shí)現(xiàn)讀取數(shù)據(jù)庫(kù)輸出json代碼的方法的相關(guān)資料,需要的朋友可以參考下2015-03-03
asp生成不需要數(shù)據(jù)庫(kù)的中獎(jiǎng)碼
有一個(gè)思路是:將一批唯一中獎(jiǎng)碼,錄入的到數(shù)據(jù)庫(kù),中獎(jiǎng)時(shí),取出來(lái)一條,做一個(gè)標(biāo)記,把中獎(jiǎng)碼告訴2008-07-07
比較不錯(cuò)的asp模板引終極講解(WEB開(kāi)發(fā)之ASP模式)
比較不錯(cuò)的asp模板引終極講解(WEB開(kāi)發(fā)之ASP模式)...2007-08-08
在JScript中使用緩存技術(shù)的實(shí)際代碼
在編寫(xiě)ASP程序時(shí),通常為了提高ASP程序的運(yùn)行效率及減少對(duì)數(shù)據(jù)庫(kù)的連接和查詢,會(huì)使用緩存技術(shù)來(lái)緩存一些需要從數(shù)據(jù)庫(kù)讀取的數(shù)據(jù)。而在ASP中實(shí)現(xiàn)緩存的方法常用的就是使用Application對(duì)象。在編寫(xiě)ASP程序時(shí),我們有兩種語(yǔ)言可以選擇,分別是VBScript和JScript。2008-05-05

