ADO如何建立修改刪除资料表呢?(BIG5)

可以使用ASP於程式當中直接建立修改刪除資料表呢?

與資料表有關的SQL語法如下:

建立一個資料表:CREATE TABLE陳述式。
修改一個資料表:ALTER TABLE陳述式。
刪除一個資料表:DROP TABLE陳述式。
建立一個索引:使用CREATE INDEX 或 ALTER TABLE陳述式。
刪除一個索引:DROP INDEX陳述式。
詳細介紹如下:

CREATE TABLE陳述式

CREATE TABLE陳述式,建立一個新的資料表。

語法如下:

CREATE TABLE 新資料表(新欄位名稱1 欄位類型 [(長度)] [NOT NULL] [索引1] [,新欄位名稱2 欄位類型 [(長度)] [NOT NULL] [索引2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])

長度為文字及二位元欄位的字元大小。

索引1, 索引2 CONSTRAINT子句定義單一欄位索引。

multifieldindex定義一多重欄位索引。

使用CREATE TABLE陳述式,如果將一欄位指定為NOT NULL,則在此欄位中新增的記錄資料內容必須是有效的資料。

CONSTRAINT子句可在一欄位上建立不同的限制,並且也可以用來建立主索引。

您可以使用CREATE INDEX陳述式,在現有的資料表上建立一個主索引或多個索引。

讓我們看一個於ASP程式碼當中使用這個SQL指令的例子。

譬如ASP程式碼rs61.asp如下,[CREATE TABLE 學員 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員的資料表,包括10個位元長度TEXT類型的姓名欄位,和整數類型的年齡欄位:

 1   
 2  
 3Set conn1 = Server.CreateObject("ADODB.Connection")   
 4  
 5conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"   
 6  
 7sql = "CREATE TABLE 學員 (姓名 TEXT(10), 年齡 INT)"   
 8  
 9Set a = conn1.Execute(sql)   
10  
11Response.Write "CREATE TABLE OK

<p>"

conn1.Close

 1  
 2執行後,使用Access開啟NtopSamp.mdb檔案時,可看到新建立一個學員的資料表。   
 3  
 4ALTER TABLE陳述式   
 5  
 6ALTER TABLE陳述式,修改已建立好的資料表。   
 7  
 8語法如下:   
 9  
10ALTER TABLE 資料表 {ADD {COLUMN 欄位名稱 欄位類型[(長度)] [NOT NULL] [CONSTRAINT 索引] |   
11CONSTRAINT multifieldindex} |   
12DROP {COLUMN 欄位名稱 I CONSTRAINT 多重欄位索引名稱} }   
13  
14使用ALTER TABLE陳述式,您可以利用多種不同方法,變更目前已存在的資料表:   
15  
16使用ADD COLUMN新增欄位到資料表。   
17使用DROP COLUMN刪除一欄位。只需指定欲刪除之欄位名稱即可。   
18使用ADD CONSTRAINT新增多重欄位索引。   
19使用DROP CONSTRAINT刪除多重欄位索引。只需指定緊接在CONSTRAINT之後的索引名稱即可。   
20使用ADD COLUMN新增欄位到資料表時,必須指定欄位名稱、資料類型、以及文字和二位元欄位的長度。例如,下例增加一個2個字元,名為性別的文字欄位至學員資料表:   
21  
22ALTER TABLE 學員 ADD COLUMN 性別 TEXT(2)   
23  
24您也可以對此欄位定義索引。   
25  
26如果您對一欄位指定 NOT NULL,則於此欄位中所新增的記錄資料必須是有效的資料。   
27  
28您不能同時新增或刪除多個欄位或索引。   
29  
30譬如ASP程式碼rs63.asp如下,[CREATE TABLE 學員1 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員1的資料表,然後使用 [ALTER TABLE 學員1 ADD COLUMN 性別 TEXT(2)] 增加一個2個字元,名為性別的文字欄位至學員1資料表:   
31  

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="&amp; Server.MapPath("ntopsamp.mdb") &amp;";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "CREATE TABLE 學員1 (姓名 TEXT(10), 年齡 INT)"

Set a = conn1.Execute(sql)

Response.Write "CREATE TABLE OK<p>"

sql = "ALTER TABLE 學員1 ADD COLUMN 性別 TEXT(2)"

Set a = conn1.Execute(sql)

Response.Write "ALTER TABLE OK<p>"

conn1.Close

 1  
 2執行後,使用Access開啟NtopSamp.mdb檔案時,可看到資料表學員1新建立一個姓別的欄位。   
 3  
 4DROP陳述式   
 5  
 6DROP陳述式從一個資料庫中刪除一個已存在的資料表,或從一個資料表中刪除一個已存在的索引。   
 7  
 8語法如下:   
 9  
10DROP {TABLE 資料表 | INDEX 索引 ON 資料表}   
11  
12資料表必須先關閉,才能刪除此資料表或由此資料表中的索引。   
13  
14若要刪除索引,除了使用DROP INDEX 索引 ON 資料表,也可以使用ALTER TABLE。   
15  
16譬如ASP程式碼rs62.asp如下,首先使用 [CREATE TABLE 學員2 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員2的資料表,包括10個位元長度TEXT類型的姓名欄位,和整數類型的年齡欄位,然後使用 [DROP TABLE 學員2] 刪除學員2的資料表:   
17  

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="&amp; Server.MapPath("ntopsamp.mdb") &amp;";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "CREATE TABLE 學員2 (姓名 TEXT(10), 年齡 INT)"

Set a = conn1.Execute(sql)

Response.Write "CREATE TABLE OK<p>"

sql = "DROP TABLE 學員2"

Set a = conn1.Execute(sql)

Response.Write "DROP TABLE OK<p>"

conn1.Close

Published At
Categories with Web编程
Tagged with
comments powered by Disqus