如何檢查表是否存在?如何檢查表是否存在
使用VB 6.0
cmd.CommandText = "drop table t1"
cmd.Execute
上面的代碼工作正常,但如果表不存在,那麼顯示「表不退出」
如何檢查表中存在或表不存在?
需要VB CODE幫助嗎?
如何檢查表是否存在?如何檢查表是否存在
使用VB 6.0
cmd.CommandText = "drop table t1"
cmd.Execute
上面的代碼工作正常,但如果表不存在,那麼顯示「表不退出」
如何檢查表中存在或表不存在?
需要VB CODE幫助嗎?
對於一個Jet MDB(也許一般爲衆多OLEDB提供商)可以使用的方法,如:
Private Sub Main()
Dim cnDB As ADODB.Connection
Set cnDB = New ADODB.Connection
cnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Jet OLEDB:Engine Type=5;Data Source='sample.mdb'"
'Check presence of table --------------
Dim rsSchema As ADODB.Recordset
Set rsSchema = _
cnDB.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, "t1", Empty))
If rsSchema.BOF And rsSchema.EOF Then
MsgBox "Table does not exist"
Else
MsgBox "Table exists"
End If
rsSchema.Close
Set rsSchema = Nothing
'--------------------------------------
cnDB.Close
End Sub
如果您只想刪除表而不拋出錯誤消息,則可以使用以下SQL(如果使用的是MySQL)。
DROP TABLE t1 IF EXISTS
其他數據庫有類似的功能,但語法不同。在MSSQL中做同樣的事情:
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1') DROP TABLE t1;
雖然這看起來非常醜陋..必須有更好的語法才能得到相同的結果。
我忘記了關於INFORMATION_SCHEMA - 我似乎總是忘記它存在 - 儘管似乎花了我的Sql大部分時間用了最近的MySql!好決定 :) – Rob 2009-06-30 08:13:38
你最好檢查有關表格的存在,而不是試圖放棄它。
的SQL語法是依賴於你正在使用的數據庫服務器/引擎,但是對於SQL Server,你可以使用類似:
的SQL Server 2000:
SELECT 1 as Exists FROM sysobjects WHERE name = 't1'
SQL服務器2005/2008 :
SELECT 1 as Exists FROM sys.objects WHERE name = 't1'
然後,您可以使用VB一樣:
Dim rs as Recordset
Dim iExists as Integer
rs = cmd.Execute
On Error Goto DoesNotExist
rs.MoveFirst
iExists = CInt(rs!Exists)
DoesNotExist:
If iExists = 1 Then
' Put code here for if the table exists
Else
' Put code here for if the table does not exist
End If
注:此代碼需要整理和「生產」=)(即我沒有實際測試,它的作品,因爲我沒有這臺機器上VB6)
我看到你是新的,並且注意到你沒有用答案標記你的任何問題。不要忘了這樣做,因爲它不僅可以獲得回答者的聲望(點數),還可以將其標記爲可能搜索相同答案的其他人的答案。 :) – Dusty 2009-06-30 20:15:50