asp實現sql的備份與恢複

來源:互聯網
上載者:User
備份|恢複 1、備份
<%
SQL="backup database 資料庫名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
   response.write "錯誤:"&err.Descripting
else
   response.write "資料備份成功!"
end if
%>

2、恢複
<%
SQL="Restore database 資料庫名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
   response.write "錯誤:"&err.Descripting
else
   response.write "資料恢複成功!"
end if
%>

註:以上語句是把資料備份到磁碟的backup目錄下,檔案名稱為backuptext.dat。

2、ASP中能修改SQL資料庫結構嗎?
答:ALTER TABLE
名稱
ALTER TABLE — 更改表屬性
文法
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 
試圖更改的現存表的名稱. 
column 
現存或新的列名稱. 
type 
新列的類型. 
newcolumn 
現存列的新名稱. 
newtable 
表的新名稱. 
table constraint definition 
表的新的約束定義. 

New table constraint for the table

輸出
ALTER 
從被更名的列或表返回的資訊. 
ERROR 
如果一個列或表不存在返回的資訊.
描述
ALTER TABLE 變更一個現存表的定義.ADD COLUMN 形式用與 CREATE TABLE一樣的文法向表中增加一個新列/欄位。ALTER COLUMN 形式允許你從列/欄位中設定或者刪除預設(值)。注意預設(值)只對新插入的行有效。RENAME 子句可以在不影響相關表中任何資料的情況下更改一個表或者列/欄位的名稱。因此,表或列/欄位在此命令執行後仍將是相同尺寸和類型。ADD table constraint definition 子句用與 CREATE TABLE一樣的文法向表中增加一個新的約束。 
  
如果要改變表的屬性,你必須是表的所有者. 

注意
COLUMN 關鍵字是多餘的,可以省略. 
如果"*"跟在一個表名後面,表示該命令要對該表和所有繼承層級低於該表的表進行操作;預設時,該屬性(更改)不會增加到任何子表或修改任何子表的相關名稱。當增加或修改一個上級表(譯註:繼承層級高的表)的屬性時總是應該這樣的。否則,象下面這樣的在繼承級上進行的查詢 

SELECT NewColumn FROM SuperClass*
將不能工作,因為子表會比上級表少一個屬性。 
在目前的實現裡,新列/欄位的預設(值)和約束子句會被忽略。你可以隨後用 ALTER TABLE 的 SET DEFAULT 形式設定預設(值)。(你還不得不用 UPDATE 把已存在行更新為預設值。) 

在目前的實現裡,只有 FOREIGN KEY 約束可以增加到表中.要建立或者刪除一個唯一約束,可以建立一個唯一索引(參閱 CREATE INDEX).要想增加 check (檢查)約束,你需要重建和重載該表,用的參數是 CREATE TABLE 命令的其他參數. 

要修改表的結構,你必須是表的所有人。不允許更改系統資料表結構的任何部分。PostgreSQL 使用者手冊 裡有關於繼承的更多資訊. 
 

請參考 CREATE TABLE 部分擷取更多有效參數的描述. 

用法
向表中增加一個 VARCHAR 列: 
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
對現存列改名: 
ALTER TABLE distributors RENAME COLUMN address TO city;
對現存表改名: 
ALTER TABLE distributors RENAME TO suppliers;
向表中增加一個外鍵約束: 
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL
相容性

SQL92ADD COLUMN 形式是相容的,除了上面說的預設(值)和約束外。ALTER COLUMN 形式是完全相容的。 
SQL92 對 ALTER TABLE 聲明了一些附加的Postgres目前還不直接支援的功能: 

ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE }
增加或刪除表的約束(比如象檢查約束,唯一約束或外鍵約束)。要建立或刪除一個唯一約束,對應地建立或刪除一個唯一索引,要修改其他類型的約束,你需要重建和重載該表,使用 CREATE TABLE  命令的其他參數. 
例如,刪除表 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 }
前,要刪除一個現存的列,表必須重新建立和重新裝載: 
CREATE TABLE temp AS SELECT did, city FROM distributors;    
DROP TABLE



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.