首先得连到SQL server的master 库上,然后创建数据库。
use master
create database your_Db
use your_db
create table aa (...)
....
.
use master
exec sp_db_option "dbo use only ",true
exec restore database ....
use
use master
create database your_Db
use your_db
create table aa (...)
....
.
use master
exec sp_db_option "dbo use only ",true
exec restore database ....
use
如何在Visual Basic 5.0中利用DMO与Transact-SQL在SQL Server上建立数据库设备、数据库及其他数据对象。我们从具体问题着手:在SQL Server上建立200M与400M的数据库设备Device_1、Device_2,在Device_1与Device_2上分别建立容量为100M的两个数据库Db1与Db2,在Db1库中建立表T_1,有四个域:Name,Age,Sex,ID_Code,以ID_Code为关键字,以Name为索引,在Db2库中建立表T_2,有五个域:Name、Age、Sex、Department、No,以Department与No为关键字。访问SQL Server,首先要打开SQL Service Manager,SQL Service Manager 用于启动、暂停、继续、停止SQL Server的服务,包括MSSQLServer与SQLExecutive两项。可以通过手工方式打开这两项服务,也可以在程序中通过行命令式打开它们。若采用手工方式,则打开SQL Service Manager,对于其中的服务MSSQLServer与SQLExecutive,直接启动它们的Start/Continue绿灯即可。采用行命令启动方式,可利用VB的Shell命令:X=shell("Sqlmgr.exe",1) 显示SQL Service Manager窗口;
X=shell("net start mssqlserver") 启动MSSQLServer服务
X=shell("net start sqlexecutive") 启动SQLExecutive服务因为在这里我们希望通过编程在SQL Server上实现数据对象结构的动态建立,因此建议使用行命令方式。启动了SQL Server Manager后,我们就可以利用DMO与Transact-SQL按以下步骤来建数据对象了。1.为能使用DMO,首先需要打开VB工具栏中Reference(引用),选择Microsoft Windows Common Control 5.0,如果在引用栏中没有发现此项,则选择Browse(浏览),将\WINNT\System32目录下的Comctl32.oca加入到Reference中来。2.在模块文件(.BAS)中建立SQLOLE对象:
Global OServer as New SQLOLE.SQLServer3.建立与SQL Server的连接:
OServer.Connect ServerName:=注册的SQL Server名,Login:=登录名(一般为sa),Password:=密码4.建数据库设备Device_1与Device_2:
dim transql as string
transql="use master" & _
"DISK INIT" & _
"Name=注释:Device_1注释:," & _
"Physname=注释:D:\SQL\data\device1.dat注释:," & _
"vdevno=10," & _
"size=102400" & _
"DISK INIT" & _
"Name=注释:Device2注释:," & _
"Physname=注释:D:\SQL\data\device2.dat注释:," & _
"vdevno=11," & _
"size=204800"
OServer.ExecuteImmediate Command:=transql,exectype:=SQLOLEExec_Default5.建数据库Db_1与Db_2:
transql = "CREATE DATABASE Db_1 ON Device_1=100 "
OServer.ExecuteImmediate Command:=transql, exectype:=SQLOLEExec_Default
transql = "CREATE DATABASE Db_2 ON Device_2=100 "
OServer.ExecuteImmediate Command:=transql, exectype:=SQLOLEExec_Default6.在数据库中建表:
在数据库Db_1上建表T_1:
transql = "use Db_1 " & _
"create table T_1 " & _
"(Name char(8) null, " & _
" Age numeric(2) null, " & _
" Sex smallint null, " & _
" ID_Code char(16) not null, " & _
" constraint c_1 primary key clustered (ID_Code))"
OServer.ExecuteImmediate Command:=transql,exectype:=SQLOLEExec_Default
建表T_1的Name列的索引:
transql="CREATE INDEX index_1 ON T_1 (Name)"
OServer.ExecuteImmediate Command:=transql,exectype:=SQLOLEExec_Default
在数据库Db_2上建表T_2:
transql = "use Db_2 " & _
"create table T_2 " & _
"(Name char(8) null, " & _
" Age numeric(2) null, " & _
" Sex smallint null, " & _
" Department char(16) not nill, " & _
" No char(4) not null," & _
"constraint c_2 primary key clustered (Department,No))"
OServer.ExecuteImmediate Command:=transql, exectype:=SQLOLEExec_Default此时,我们完成了建立数据对象的编码工作,程序被编译执行后,就会在SQL Server上自动建立数据库设备、数据库及库中的表。 对于数据库设备,可以用DISK REINIT,DISK REFIT,DISK RESIZE对它进行操作,如要扩展数据库设备Device_1的容量为200M,可利用如下方法:DISK RESIZE
Name=注释:Devive_1注释:,
Size = 102400对于SQL Server上已经建立的数据库及表的结构,也可以通过DMO与事务SQL进行修改与删除。类似于上面的编码,可以利用Alter Database Db_1,Alter DatabaseDb_2,Alter Table T_1,Alter Table T_2等事务SQL语句进行对所建立的数据库与表的的结构进行修改,而利用Drop Database, Drop Table事务语句删除所建立的数据库与表。以上讨论了如何在SQL Server上动态地建立与访问数据对象的结构,至于对SQL Server上数据库与表的内容的访问,可以利用ODBC(开放数据库互连)、DAO(数据访问对象)、RDO(远程数据对象)或DB-Library进行编程。
sql = "Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=master;Data Source= " & Servername
Con.Open sql
sql = "SELECT * FROM sysdatabases Where name = '" & Databasename & "'"
rs.Open sql, Con
If Not rs.Eof Then
sql = "drop database " & Databasename
Con.Execute sql
End If
sql = "create database " & Databasename & " on ( name=" & Databasename & ", filename= 'd:\mydb.mdf') log on ( name=" & Databasename & "_log, filename='d:\mydb.ldf')"
Con.Execute sql
Con.Close
sql = "Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=" & Databasename & ";Data Source= " & Servername
Con.Open sql
'databasename 和 servername分别是创建的数据库名称和服务器名称,你可以给用户填写,也可以在代码中指定.
dim con as new connection
con.connectionstring="provider=msdasql;driver=sql server;server=yourserver;uid=yourUid;pwd=yourPWD;database=master;"
'能登陆SQL Server中具有操作Master数据库的登陆账号
con.open
dim sql as string
sql="create database DBName on( NAME = YPTECH,FILENAME = '" & App.Path & "\DBName.mdf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 )"
'创建数据库的T-SQL语句
con.excute sql 创建表格、视图、存储过程等同理