記事ディレクトリ
1.SQLServerからExcelデータをインポートします
次に、完了するまで[次へ]をクリックします。
この時点で、EXCELデータがSQLServerにインポートされます。
2、Excelデータをインポートするためのヒント
秘訣は、コピーと貼り付けの方法を直接使用することです。
注:この方法は、少量のデータを追加する場合にのみ適しています。数十万行のデータの場合、この方法でインポートすることはできません。
図に示すように、Excelでデータを直接コピーします
。PTYPESテーブルを右クリックし、編集する最初の2002行を選択します。
直接右クリックして貼り付けます
。この時点で、データを直接インポートできます。
3.Microsoft.ACE.OLEDBを使用してExcelデータをインポートします
最初にパッケージをインストールします。
次のコードを実行して、Excelテーブルにデータをインポートします。
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\S072003DBS\食品销售数据\类别.XLSX',[类别$]);
エラーが発生した場合は、次のコードを参照してください。
-- 报错一:SQLServer阻止了对组件'AdHocDistributedQueries'的STATEMENT'OpenRowset/OpenDatasource'的访问,
-- 因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。
-- sp_configure启用'AdHocDistributedQueries'。
-- 解决方法:
-- 启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
-- 为了安全,使用完成后,关闭Ad Hoc Distributed Queries
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
-- 报错二:无法创建链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的实例。
-- 解决方法:
--允许在进程中使用ACE.OLEDB.12
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
--允许动态参数
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
第4に、データの行を手動で追加します
INSERT INTO PTYPES (PTID,PTNAME) VALUES(101,'细粮')
5.複数行のデータを手動で追加します
INSERT INTO PTYPES (PTID,PTNAME) VALUES
(102,'有机蔬菜'),(103,'有机粮食'),(104,'有机水果')
5.タイプの不一致によって引き起こされたインポートの失敗を解決します
次のインポートが失敗したことが判明しました。
理由は、サプライヤとカテゴリのタイプが定義されているINT
が、excel
それらは文字列タイプであるため、インポートが失敗したためです。
回避策:
両方を無視します。したがって、データベースでnull値を許可するように両方を設定する必要があります。
この時点で、インポートは成功しています。