VB怎么判断本机SQL Server2000有没有一个数据库“ABC”?数据库“ABC”上有没有一个表“EFG”?我只有10分,全给您了!

imur 2003-12-17 01:24:04
要是没有数据库“ABC”,就创建它,要是已经存在就跳过。对表“EFG”也是一样:要是数据库“ABC”没有就表“EFG”创建它,要是已经存在就跳过。

vb里怎么写?谢谢先!
...全文
47 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
对!
一句sql就搞定,没记录=无
有记录=有

不过好像要把表sysdatabases读取权限打开
986753421 2003-12-17
  • 打赏
  • 举报
回复
谢谢,受益。
jhzhou882 2003-12-17
  • 打赏
  • 举报
回复
我也认为 (零蛋)
的方法比较好
hnhl 2003-12-17
  • 打赏
  • 举报
回复
严重同意XMLWeb(零蛋)
XMLWeb 2003-12-17
  • 打赏
  • 举报
回复
master库中有一张表sysdatabases存放数据库中所有数据库名称,在每一个数据库中都有一张表sysobjects存放该数据库中所有表,触发器,视图,函数等
select * from sysdatabases where name='abc' //找数据库abc是否存在
select * from sysobjects where name='EFG' and xtype='U' //找数据库表EFG是否存在
其余的就简单了
SoHo_Andy 2003-12-17
  • 打赏
  • 举报
回复
判断数据库是否存在的方法,使用错误捕捉即可
Private Sub Command1_Click()
On Err GoTo errHandle
Dim cnn1 As adodb.Connection
Dim rstSchema As adodb.Recordset
Dim strCnn As String

Set cnn1 = New adodb.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=infofsv;Initial Catalog=aaa;User Id=sa;Password=infofsv; "
cnn1.Open strCnn
Exit Sub
errHandle:
MsgBox Err.Description
End Sub

判断表是否存在的方法
ADO的OpenSchema()方法

Dim cnn1 As adodb.Connection
Dim rstSchema As adodb.Recordset
Dim strCnn As String

Set cnn1 = New adodb.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn

Set rstSchema = cnn1.OpenSchema(adSchemaTables)

Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop
rstSchema.Close

cnn1.Close
986753421 2003-12-17
  • 打赏
  • 举报
回复
具体怎么判断我也不会,建议你生成一个表的SQL脚本,也许能从中有所启发。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧