欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库实验——表/视图的创建by SixInNight

程序员文章站 2022-06-02 08:15:23
...

创建相应表

建立学生选课数据库并创建相应的表(以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 属性 → 所有访问接口选项均不启用
    数据库实验——表/视图的创建by SixInNight