教你解決整理SQL Server輸入的資料
我當前的專案中包括一個6200萬行、500多列的表。其中的資料來自SQL Server以外,它們到達的表中有一個標識主鍵,所有剩下的列以varchar(50)形式儲存。
問題解決
有許多日期以YYYYMMDD格式儲存,這是我注意到的第一個問題。我把這些日期改為整數列。然後我發現許多整數以varchar形式儲存,我把它們都改為整數。
接下來,許多列中包含“Y”或“N”或NULL。我們很可能會把它們轉換成位列,但這樣做存在一個重大的缺陷——你不能索引一個位列。因此,我把它們改成char(1) NULL。
此外,還有一些列中儲存有郵政編碼,前面一列為五個數字,後面一列為四個數字或NULL。我將它們分別改成char(5)和char(4),都為NULL。
我遇到的另外一個問題是,我無法明白相當一部分列中的內容。我把它們單獨處理,為varchar(50)。我希望確定每個varchar列中儲存的字串的最大長度,但要檢查6200萬行中的所有資料中不切實際的。因此,我選擇生成所有列的char或varchar列表。
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='tblArthurClean' AND DATA_TYPE IN('char','varchar') |
我複製結果表中的第一列,把它貼上到記事本中(這是我最喜歡的文字編輯器,因為它具有優秀的查詢-替換功能。)要確定一個特定列中的最長資料,使用下列指令碼:
SELECT Max(Len( ColumnName )) FROM TableName |
推而廣之,我希望遍歷列列表並生成我需要的宣告。我把需要的內容集中到一些格式化行中,用一個單獨的查詢來達到這個目的。
SELECT ',Max(Len( ' + COLUMN_NAME + ' )) AS ' + COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tblArthurClean' AND DATA_TYPE IN( 'char', 'varchar' ) |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-617509/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server置疑資料庫解決方法SQLServer資料庫
- 兩臺SQL Server資料同步解決方案SQLServer
- SQL Server海量資料匯入最快方法的詳解SQLServer
- SQL Server和Oracle間的資料同步解決方案SQLServerOracle
- 兩臺SQL Server資料同步解決方案(轉)SQLServer
- SQL server資料匯入OracleSQLServerOracle
- SQL Server 資料庫無法重新命名的解決SQLServer資料庫
- sql server資料庫附加錯誤的解決過程SQLServer資料庫
- SQL Server裡附加資料庫出錯的解決方法SQLServer資料庫
- SQL Server海量資料匯入的方法SQLServer
- C++ 資料輸入cin (解決CLoin輸入中文程式出錯)C++
- 解決無法連線SQL Server資料庫的方法BWSQLServer資料庫
- SQL Server 05資料庫被置為“可疑”的解決方法SQLServer資料庫
- SQL Server快速匯入資料分享SQLServer
- SQL Server海量資料匯入方法SQLServer
- SQL Server資料匯入匯出工具BCP詳解(轉)SQLServer
- SQL SERVER 資料庫被標記為“可疑”的解決辦法SQLServer資料庫
- SQL SERVER 資料庫遷移孤立使用者的解決方法SQLServer資料庫
- 整理SQL SERVER資料頁checksum校驗演算法SQLServer演算法
- SQL Server 2005和SQL Server 2000資料的相互匯入SQLServer
- SQL SERVER 和EXCEL的資料匯入匯出SQLServerExcel
- SQL Server資料庫佔用記憶體過多的解決方法SQLServer資料庫記憶體
- 解決SQL Server資料庫維護計劃失敗的問題SQLServer資料庫
- 三種方法教你解決輸入法不顯示問題
- 資料的輸入輸出
- Sql Server 匯入另一個資料庫中的表資料SQLServer資料庫
- 在SQL Server資料庫中匯入匯出資料SQLServer資料庫
- 在SQL Server資料庫中匯入MySQL資料庫Server資料庫MySql
- ORACLE資料庫裡表匯入SQL Server資料庫Oracle資料庫SQLServer
- Sql Server資料庫資料匯入到SQLite資料庫中Server資料庫SQLite
- Sql Server之資料型別詳解SQLServer資料型別
- 使用SqlBulkCopy匯入資料至MS SQL ServerSQLServer
- [zt] SQL Server匯出匯入資料方法SQLServer
- SQL Server Bulk Insert批量資料匯入SQLServer
- sql server 2005資料庫載入SQLServer資料庫
- Sql server資料庫記錄修改追蹤和恢復的解決方案SQLServer資料庫
- 解決SQL Server資料庫佔用記憶體過多的問題SQLServer資料庫記憶體
- SQL Server資料庫從高版本遷移到低版本的解決方案SQLServer資料庫