高分相送,关于VB创建数据库问题 用SQL-SERVER作为后台数据库时,安装打包的VB程序,希望一些数据库的创建能够自动在SQL中做,或VB如何在SQL-SERVER中创建数据库?1000分给! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=180207 如何查看SQL中的TABLE已经存在? 在Sql server中:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SMChild]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) '存在drop table [dbo].[SMChild] 还是手工建库比较方便,执行建库脚本就可以了,可以自动生成整个数据库只要给可以一个简单的操作说明和一个.sql文件.sql文件可以这样生成:在SQLServer企业管理器中,鼠标右键点数据库,所有任务-生成SQL脚本,在对话框中设置好,点确定就可以了~ 只要给客户一个简单的操作说明和一个.sql文件,说明如何打开查询分析器,如何执行SQL脚本 可以不用查询分析器执行一个.sql文件'ExexSC(服务器名,用户名,密码,脚本路径)'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Public Sub ExexSC(TxtServerName As String, TxtLoginName As String, _TxtLoginPWD As String, yourFileName As String)'首先引用SQL DMO OBJECTLIBRARYDim GOBJServer As SQLDMO.SQLServerSet GOBJServer = New SQLDMO.SQLServerGOBJServer.LoginTimeout = 10GOBJServer.Connect TxtServerName, TxtLoginName, TxtLoginPWD'登录数据库服务器''''''''''''''''''''''Dim LOBJDatabase As New SQLDMO.Database' LOBJDatabase.Name = LStrDBName'' '建立数据库数据文件' Dim LObjDBF As New SQLDMO.DBFile' LObjDBF.Name = LStrDBName '名称' LObjDBF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & ".dbf" '文件名称' LObjDBF.Size = 10 '初始大小10M' LObjDBF.FileGrowthType = SQLDMOGrowth_Percent '增长方式为按比例' LObjDBF.FileGrowth = 5 '增长5%' LOBJDatabase.FileGroups("PRIMARY").DBFiles.Add LObjDBF '将数据库文件绑定到数据库'' '建立日志文件' Dim lOBJLogF As New SQLDMO.LogFile' lOBJLogF.Name = LStrDBName & "_Log.ldf"' lOBJLogF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & "_log.ldf" '文件名称' lOBJLogF.Size = 5 '初始大小5M' LOBJDatabase.TransactionLog.LogFiles.Add lOBJLogF '将日志文件增加到数据库'' '将数据库添加到服务器' GOBJServer.Databases.Add LOBJDatabase''建立新的数据库''''''''''''''''''''''''''''''''Dim lObjLogin As New SQLDMO.Login '登录用户对象'Dim lObjUser As New SQLDMO.User '数据库用户对象''lObjLogin.Name = Trim(TxtUserName.Text) '指定用户登录名'lObjLogin.Database = CboDatabases.Text '默认登录数据库'lObjLogin.DenyNTLogin = False '非NT系统登录'GOBJServer.Logins.Add lObjLogin '添加登录用户'lObjLogin.SetPassword "", Trim(TxtPWD.Text) '指定密码'GOBJServer.ServerRoles(1).AddMember Trim(TxtUserName.Text) '指定用户为超级用户'lObjUser.Name = lObjLogin.Name '指定用户名'lObjUser.Login = lObjLogin.Name ''GOBJServer.Databases(CboDatabases.Text).Users.Add lObjUser '为系统数据库添加该新用户''为新数据库建立用户'''''''''''''''''''''''''''''''''''Dim fillname As Integer '文件句柄Dim lStrLine As Stringfillname = FreeFileDim UstrSQlScript As String '记录数据库脚本Open yourFileName For Input As #fillname Do While Not EOF(fillname) Line Input #fillname, lStrLine UstrSQlScript = UstrSQlScript + lStrLine + (Chr(13) + Chr(10)) LoopClose #fillname'读出脚本文件到变量'''''''''''''''执行脚本建立数据库GOBJServer.Databases("pubs").ExecuteImmediate UstrSQlScript, SQLDMOExec_DefaultMsgBox "执行成功"GOBJServer.CloseSet GOBJServer = NothingEnd Sub 我写的一个函数必须'首先引用SQL DMO OBJECTLIBRARY然后按照: viena(维也纳nn-实心木头人) 的方法创建一个.sql脚本然后调用我的方法.注意:脚本中在执行 create database 之后 创建表之前必须+上use 数据库go这样才能把表插入正确de数据库 关于调试函数 (高分) lu COM 口操作问题(在线) com+应用程序的属性:“标识“中“账户”有两个选项,交互式用户我会用,但另一个怎么用? 急啊!listview的问题!100分!不够再加! excel vba 关于数据校验的小问题 连outlook 串行接收难题,错在什么地方? 对于打包后的vfp安装程序,当我运行setup时,总是提示"安装程序不能读取e:\~mssetup.t\mssfqf.t\setup.stf的首字节?? vb引用vc的dll文件时,提示错误,怎么引用?? 关于生成.exe
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SMChild]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) '存在
drop table [dbo].[SMChild]
'ExexSC(服务器名,用户名,密码,脚本路径)'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Public Sub ExexSC(TxtServerName As String, TxtLoginName As String, _
TxtLoginPWD As String, yourFileName As String)
'首先引用SQL DMO OBJECTLIBRARY
Dim GOBJServer As SQLDMO.SQLServer
Set GOBJServer = New SQLDMO.SQLServer
GOBJServer.LoginTimeout = 10
GOBJServer.Connect TxtServerName, TxtLoginName, TxtLoginPWD
'登录数据库服务器
'''''''''''''''''''''
'Dim LOBJDatabase As New SQLDMO.Database
' LOBJDatabase.Name = LStrDBName
'
' '建立数据库数据文件
' Dim LObjDBF As New SQLDMO.DBFile
' LObjDBF.Name = LStrDBName '名称
' LObjDBF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & ".dbf" '文件名称
' LObjDBF.Size = 10 '初始大小10M
' LObjDBF.FileGrowthType = SQLDMOGrowth_Percent '增长方式为按比例
' LObjDBF.FileGrowth = 5 '增长5%
' LOBJDatabase.FileGroups("PRIMARY").DBFiles.Add LObjDBF '将数据库文件绑定到数据库
'
' '建立日志文件
' Dim lOBJLogF As New SQLDMO.LogFile
' lOBJLogF.Name = LStrDBName & "_Log.ldf"
' lOBJLogF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & "_log.ldf" '文件名称
' lOBJLogF.Size = 5 '初始大小5M
' LOBJDatabase.TransactionLog.LogFiles.Add lOBJLogF '将日志文件增加到数据库
'
' '将数据库添加到服务器
' GOBJServer.Databases.Add LOBJDatabase
''建立新的数据库
'''''''''''''''''''''''''''''''
'Dim lObjLogin As New SQLDMO.Login '登录用户对象
'Dim lObjUser As New SQLDMO.User '数据库用户对象
'
'lObjLogin.Name = Trim(TxtUserName.Text) '指定用户登录名
'lObjLogin.Database = CboDatabases.Text '默认登录数据库
'lObjLogin.DenyNTLogin = False '非NT系统登录
'GOBJServer.Logins.Add lObjLogin '添加登录用户
'lObjLogin.SetPassword "", Trim(TxtPWD.Text) '指定密码
'GOBJServer.ServerRoles(1).AddMember Trim(TxtUserName.Text) '指定用户为超级用户
'lObjUser.Name = lObjLogin.Name '指定用户名
'lObjUser.Login = lObjLogin.Name '
'GOBJServer.Databases(CboDatabases.Text).Users.Add lObjUser '为系统数据库添加该新用户
''为新数据库建立用户
'''''''''''''''''''''''''''''''''''
Dim fillname As Integer '文件句柄
Dim lStrLine As String
fillname = FreeFile
Dim UstrSQlScript As String '记录数据库脚本
Open yourFileName For Input As #fillname
Do While Not EOF(fillname)
Line Input #fillname, lStrLine
UstrSQlScript = UstrSQlScript + lStrLine + (Chr(13) + Chr(10))
Loop
Close #fillname
'读出脚本文件到变量
''''''''''''''
'执行脚本建立数据库
GOBJServer.Databases("pubs").ExecuteImmediate UstrSQlScript, SQLDMOExec_DefaultMsgBox "执行成功"
GOBJServer.Close
Set GOBJServer = Nothing
End Sub
然后按照: viena(维也纳nn-实心木头人) 的方法创建一个.sql脚本
然后调用我的方法.
注意:
脚本中在执行 create database 之后 创建表之前必须+上
use 数据库
go
这样才能把表插入正确de数据库