小编典典

如何检查数据库和表在vb .net项目中的sql服务器中是否存在?

sql

谁能告诉我如何通过vb.net项目检查SQL Server中是否存在数据库和表?我想做的就是检查数据库是否存在(最好在“
If”语句中,除非有人有更好的处理方式),如果数据库确实存在,我会做一件事,如果数据库不存在,那么我会创建数据库与表和列。在这个问题上的任何帮助将不胜感激。

编辑:

该应用程序具有与服务器的连接。当应用程序在PC上运行时,我希望它检查数据库是否存在,如果存在,则继续执行应做的事情,但是如果数据库不存在,则首先创建数据库,然后继续进行操作它应该做什么。因此,基本上,我希望它首先在PC上运行然后创建数据库,然后再进行业务,然后在数据库每次在PC上运行之后创建数据库,然后让我查看数据库是否存在,然后再进行业务。之所以这样,是因为该应用程序将在多台PC上运行,我只希望创建一次数据库和表(第一次在PC上运行),然后在另一台PC上运行时,


阅读 186

收藏
2021-04-22

共1个答案

小编典典

您可以查询SQL Server以检查对象的存在。

要检查数据库是否存在,可以使用以下查询:

SELECT * FROM master.dbo.sysdatabases WHERE name = 'YourDatabase'

要检查表是否存在,可以对目标数据库使用此查询:

SELECT * FROM sys.tables WHERE name = 'YourTable' AND type = 'U'

下面的链接显示了如何使用VB.NET代码检查SQL Server是否存在数据库:

使用vb.net检查服务器上是否存在SQL数据库

从上面的链接引用的代码:

Public Shared Function CheckDatabaseExists(ByVal server As String, _
                                           ByVal database As String) As

Boolean
Dim connString As String = (“Data Source=” _ + (server + “;Initial Catalog=master;Integrated
Security=True;”))

    Dim cmdText As String = _
       ("select * from master.dbo.sysdatabases where name=\鈥�" +

(database + “\鈥�”))

    Dim bRet As Boolean = false

    Using sqlConnection As SqlConnection = New SqlConnection(connString)
        sqlConnection.Open
        Using sqlCmd As SqlCommand = New SqlCommand(cmdText,

sqlConnection)
Using reader As SqlDataReader = sqlCmd.ExecuteReader
bRet = reader.HasRows
End Using
End Using
End Using

    Return bRet

End Function

您可以用另一种方式执行检查,因此可以通过EXISTS对数据库和表进行检查来在一次调用中完成:

IF NOT EXISTS (SELECT * FROM master.dbo.sysdatabases WHERE name = 'YourDatabase')
BEGIN
    -- Database creation SQL goes here and is only called if it doesn't exist
END

-- You know at this point the database exists, so check if table exists

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'YourTable' AND type = 'U')
BEGIN
    -- Table creation SQL goes here and is only called if it doesn't exist
END

通过使用数据库和表名的参数一次调用上述代码,您将知道两者都存在。

2021-04-22