數據庫實驗——表/視圖的創建by SixInNight

創建相應表

建立學生選課數據庫並創建相應的表(以BOOK表爲例)

CREATE DATABASE 學生選課
ON PRIMARY(
	NAME = stu_data,
	FILENAME = 'D:\DATA\stu_data.mdf',
	SIZE = 20,
	FILEGROWTH = 1
)
LOG ON(
	NAME = stu_log,
	FILENAME = 'D:\DATA\stu_log.ldf',
	SIZE = 8,
	MAXSIZE = 1GB,
	FILEGROWTH = 10%)
GO

USE 學生選課
DROP TABLE IF EXISTS BOOK
CREATE TABLE BOOK(
	教材ID號 VARCHAR(20) NOT NULL,
	教材名 VARCHAR(30) NOT NULL,
	出版社 VARCHAR(20) NOT NULL,
	作者 VARCHAR(20) NOT NULL,
	價格 MONEY NOT NULL)
GO

將提供的數據導入各表

1. 分佈式查詢

使用 (Transact-SQL)OPENROWSETOPENDATASOURCE 函數直接從 Excel 文件導入 SQL Server

2. 啓用ad hoc distributed queries服務器配置選項

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

3. 允許在進程中使用 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. 導入BOOK表(代碼總覽)

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
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;
GO

INSERT INTO 學生選課.dbo.BOOK SELECT * FROM OPENROWSET(
	'MICROSOFT.ACE.OLEDB.12.0', 'Excel 5.0; User ID=Admin; Password=; HDR=YES;
	Database=D:\Downloads\實驗平臺\BOOK.xls', Sheet1$)
GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 0;
RECONFIGURE;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE;
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0;
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 0;
GO

5. 相關問題及解決

操作如下:

  • 點擊開始 → 搜索服務 → 右鍵SQL Server (MSSQLSERVER) → 點擊屬性 → 點擊登錄 → 選中本地系統賬戶 → 重啓
  • 卸載32位Office
  • 到官網下載AccessDatabaseEngine_X64.exe → 安裝(點擊下載)
  • 執行導入表之前,務必關閉源數據所在的 Excel 表格
  • (修改表的某列屬性時,需要先 DROP 影響該列的約束)
  • 可以適時考慮新建一個表(小編就這麼幹的)、重啓等操作
  • 設置Microsoft.ACE.OLEDB.12.0 屬性 → 所有訪問接口選項均不啓用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章