2009-07-31 17 views
0

我有一個Excel工作表,其中第一行包含所有列的標題。我想要第一行中的所有名字。用於讀取第一行所有列的SQL命令

什麼是讀取第一行所有條目的SQL命令?

如果可能,我想定義最大限制。

另外:我想枚舉所有的列名。

+1

如果你想導入這個,那麼SQL有一個方法只是將數據直接導入到表中。你能否澄清你想要完成更多的事情?我認爲這可能會有所幫助。 – Jon 2009-07-31 04:47:31

+0

@Jon,我只是想列舉出現在第一行的所有標題。也就是說,從col-0到col-100(說)的第0行的所有標題。我打算將它用於顯示所有枚舉標題的軟件(從第1行讀取)。 – Alphaneo 2009-07-31 04:53:50

回答

2

這在使用Excel中的工作對我來說保存的工作簿,並枚舉列(字段)名稱。

Sub ListFieldADO() 

    strFile = Workbooks(1).FullName 
    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _ 
     & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";" 


    Set cn = CreateObject("ADODB.Connection") 

    cn.Open strCon 

    ''You can also use the name of a named range 
    Set rs = cn.OpenSchema(adSchemaColumns, _ 
     Array(Empty, Empty, "Sheet1$")) 
    While Not rs.EOF 
     Debug.Print "  " & rs!Column_Name 
     rs.MoveNext 
    Wend 

    rs.Close 
    Set rs = Nothing 
End Sub 
3

您需要提及「HDR = No;」在你的連接字符串中。然後你可以使用下面的查詢:

Select Top 1 * from [SheetName$] 

「HDR =無」將指定第一行不包含列名稱。

被說,我不知道是否有一個SQL語句從表中獲取列名。如果存在,則可以在連接字符串中使用HDR = Yes並使用該SQL語句。

1
Select Top 1 * into #temp from [SheetName$] 

use tempdb 

sp_help #temp. 

通過這個,你可以得到#temp表的列名。同樣,你必須將數據庫更改爲:

use yourDBName 

把數據放到一個臨時表和讀取臨時表的屬性,並從,你可以得到列名的列表。

3

我希望我理解這個權利....但我認爲你說你想從表中選擇列名:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = [YourTableName]