无论如何,我们可以从表拉SQL数据库模式吗?如何使用数据读取器拉SQL模式
以下是我的代码,但noway我可以拉整个模式一样
Create Table Employee(code int, name blah blah...)
Dim sqlQuery As String
Dim textInsertQueryLine As String
Dim tableSchema As DataTable
Dim tableField As DataRow
Dim tableProperty As DataColumn
Dim SourceConn As New SqlConnection(sourceDBPath)
Dim DestinationConn As New SqlConnection(destinationDBPath)
SourceConn.Open()
DestinationConn.Open()
sqlQuery = "SELECT name FROM sys.tables"
Dim cmdX As New SqlCommand(sqlQuery, SourceConn)
Dim readerX As SqlDataReader = cmdX.ExecuteReader
Do While readerX.Read
Dim cmdY As New SqlCommand(sqlQuery, DestinationConn)
Dim readerY As SqlDataReader = cmdY.ExecuteReader
Do While readerY.Read
If readerX.GetString(0) = readerY.GetString(0) Then
txtConsoleView.AppendText(readerX.GetString(0) + "Matched. " + vbCrLf)
Else
tableSchema = readerX.GetSchemaTable()
txtConsoleView.AppendText(tableSchema.ToString + vbCrLf)
End If
Loop
readerY.Close()
Loop
readerX.Close()
SourceConn.Close()
DestinationConn.Close()
您可以使用['SqlDataReader.GetSchemaTable'(http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getschematable(v = VS.90)的.aspx)。 – 2014-11-06 09:18:48
readerX.GetSchemaTable()我使用这一行,但它仅返回表名 – Kirk 2014-11-06 09:19:46
,因为您已经使用了'SELECT name FROM sys.tables',但是您必须从'sys返回的真正表中选择*'。表“代替。 – 2014-11-06 09:21:12