使用SPT建立SQL數據庫

****************************************
*        使用SPT建立SQL數據庫  *
*          1.0   2003.06.07            *
*  雅狐論壇 www.yafox.com  *
****************************************
*假設已經連接上SQL服務器,連接句柄爲Sql_Connect
SQL_DataBase="yafox" &&要建立的數據庫名稱
SQL_CommandStr="SELECT count(name) as cntdatabase FROM sysdatabases WHERE name=?SQL_DataBase"  
=SQLEXEC(Sql_Connect,SQL_CommandStr,"SqlCurs")
IF SqlCurs.cntdatabase=0
    WAIT "正在建立數據庫"+SQL_DataBase+",請稍候……" WINDOW NOWAIT 
    SQL_CommandStr="create database "+SQL_DataBase+" on(name='"+SQL_DataBase+"',filename='c:/"+SQL_DataBase+".mdf',size=
50,maxsize=1024,filegrowth=50) "
SQL_CommandStr=SQL_CommandStr+"log on (name='"+SQL_DataBase+"_log',filename='c:/"+SQL_DataBase+".ldf',size=50,maxsize=
1024,filegrowth=50)"
=SQLCOMMIT(Sql_Connect)
IF SQLEXEC(Sql_Connect,SQL_CommandStr)<0
  WAIT CLEAR
  MESSAGEBOX("創建數據庫"+SQL_DataBase+"失敗",16,"失敗")
ELSE
  WAIT CLEAR
  MESSAGEBOX("創建數據庫"+SQL_DataBase+"成功",16,"成功")
ENDIF
  MESSAGEBOX("創建數據庫"+SQL_DataBase+"失敗",16,"失敗")
ELSE
MESSAGEBOX("數據庫"+SQL_DataBase+"已經存在",16,"重複")
ENDIF
****************************************

語句解釋:
name 數據庫的邏輯名稱
filename 數據庫的物理名稱及位置
size 初始大小 (M)
maxsize 最大限制 (M,可以忽略)
filegrowth 數據庫增量   
  
*建立表 CodeUser 的命令如下:
SQL_CommandStr="create table CodeUser (userid nchar(4),username nchar(10),userpass nchar(24),uniqueid int 
identity,updatetime datetime)"
=SQLEXEC(Sql_Connect,SQL_CommandStr)

在建立一個表之前,我們應該先查詢一下它是否已經存在於數據庫中,查詢命令如下:
SQL_CommandStr="SELECT count(id) as cntid FROM sysobjects WHERE name='CodeUser' and xtype='u'" 
=SQLEXEC(Sql_Connect,SQL_CommandStr,"SqlCurs")
IF SqlCurs.cntid>0
MESSAGEBOX("表CodeUser已經存在",16,"重複")
ENDIF

*建立表 CodeUser 的INSERT, UPDATE的觸發器命令如下:
SQL_CommandStr="CREATE TRIGGER CodeUser_IU ON CodeUser FOR INSERT, UPDATE AS "+;
"update CodeUser set Updatetime=getdate() where uniqueid in (select uniqueid from inserted)"
=SQLEXEC(Sql_Connect,SQL_CommandStr)

此觸發器的功能是在增加或者編輯過CodeUser表後,自己更新Updatetime字段爲系統當前時間用以記錄最後的更改時間
當然在建立觸發器之前,我們也得先查詢一下它是否已經存在,查詢命令如下:
SQL_CommandStr="SELECT count(id) as cntid FROM sysobjects WHERE name='CodeUser_IU' and xtype='tr'"
=SQLEXEC(Sql_Connect,SQL_CommandStr,"SqlCurs")
IF SqlCurs.cntid>0
    MESSAGEBOX("觸發器CodeUser_IU已經存在",16,"重複")
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章