可以使用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類型的姓名欄位,和整數類型的年齡欄位:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "CREATE TABLE 學員 (姓名 TEXT(10), 年齡 INT)"
Set a = conn1.Execute(sql)
Response.Write "CREATE TABLE OK<p>"
conn1.Close
%>
執行後,使用Access開啟NtopSamp.mdb檔案時,可看到新建立一個學員的資料表。
ALTER TABLE陳述式
ALTER TABLE陳述式,修改已建立好的資料表。
語法如下:
ALTER TABLE 資料表 {ADD {COLUMN 欄位名稱 欄位類型[(長度)] [NOT NULL] [CONSTRAINT 索引] |
CONSTRAINT multifieldindex} |
DROP {COLUMN 欄位名稱 I CONSTRAINT 多重欄位索引名稱} }
使用ALTER TABLE陳述式,您可以利用多種不同方法,變更目前已存在的資料表:
使用ADD COLUMN新增欄位到資料表。
使用DROP COLUMN刪除一欄位。只需指定欲刪除之欄位名稱即可。
使用ADD CONSTRAINT新增多重欄位索引。
使用DROP CONSTRAINT刪除多重欄位索引。只需指定緊接在CONSTRAINT之後的索引名稱即可。
使用ADD COLUMN新增欄位到資料表時,必須指定欄位名稱、資料類型、以及文字和二位元欄位的長度。例如,下例增加一個2個字元,名為性別的文字欄位至學員資料表:
ALTER TABLE 學員 ADD COLUMN 性別 TEXT(2)
您也可以對此欄位定義索引。
如果您對一欄位指定 NOT NULL,則於此欄位中所新增的記錄資料必須是有效的資料。
您不能同時新增或刪除多個欄位或索引。
譬如ASP程式碼rs63.asp如下,[CREATE TABLE 學員1 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員1的資料表,然後使用 [ALTER TABLE 學員1 ADD COLUMN 性別 TEXT(2)] 增加一個2個字元,名為性別的文字欄位至學員1資料表:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";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
%>
執行後,使用Access開啟NtopSamp.mdb檔案時,可看到資料表學員1新建立一個姓別的欄位。
DROP陳述式
DROP陳述式從一個資料庫中刪除一個已存在的資料表,或從一個資料表中刪除一個已存在的索引。
語法如下:
DROP {TABLE 資料表 | INDEX 索引 ON 資料表}
資料表必須先關閉,才能刪除此資料表或由此資料表中的索引。
若要刪除索引,除了使用DROP INDEX 索引 ON 資料表,也可以使用ALTER TABLE。
譬如ASP程式碼rs62.asp如下,首先使用 [CREATE TABLE 學員2 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員2的資料表,包括10個位元長度TEXT類型的姓名欄位,和整數類型的年齡欄位,然後使用 [DROP TABLE 學員2] 刪除學員2的資料表:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";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
%>