数据库实验——表/视图的创建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 属性 → 所有访问接口选项均不启用
  • 19
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值