SQL Server是微软的一款关系型数据库。某些平台吹得天花烂坠,今天第一次在自己的项目中使用了下,感觉不是那么好,特别是SQL语句的支持度还是很欠缺,如limit等都不支持,还有特别单双引号都是需要特别注意的,下面是SQL Server的安装和使用总结:
SQL Server安装:
1.到官网下载下载器:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads ,如图:
2.新建一个文件夹并将下载好的下载器移动到这个文件夹中(可以不新建,个人习惯将软件归类管理,但是后面会发现微软的软件很多你是无法很好的管理,因为它会不受控制的安装到C盘去,即使自定义了安装目录,但是还是有很多文件是装到C盘去,吐槽微软!),之后双击下载器后选中基本即可,如:
3.双击基本后会再次弹出一个许可协议,接受后将安装路径修改为自己新建的文件夹,之后点击安装继续,如:
4.看到下面界面表示数据库已经安装成功,此时可以继续安装SSMS(SSMS是一款数据库管理软件,类似SQLyog,但是没有SQLyog好用的数据库管理软件),如:
5.点击完SSMS后会跳到新的网页中去,此时点击如图所示位置即可下载可视化管理软件(如果需要中文,可以继续到下面Available languages点击chinese即可安装中文版),如:
6.将下载好的SSMS下载器放到重新新建的文件夹,之后双击,并修改安装路径后继续点击install进行下载安装,如:
7.安装完成后点击Close即可,点击完CLose后,此时桌面可能没有快捷方式,此时你可以到自己应用中找到名为:azuredatastudio.exe的程序之后双击即可,通过文件所在位置可以看到文件是安装在了C盘,我C盘坚决不安装与系统相关的软件,因此我会将整个文件剪切到其它盘,之后创建快捷方式,打开管理软件如下(类似编辑器,如果想要更可视化的管理数据库,那么还得继续选择其中的工具):
其中的工具如:
**node.js中使用SQL Server: **
node.js中使用SQL Server可以通过第三方包:mssql,类似node.js连接mysql的包mysql一样,我项目中涉及分库分表存储数据,下面我将我项目中主要代码粘贴如下可供参考:
配置默认数据库:默认数据库用来查询项目基础数据,文件命名为:mssqldefaultconfig.js文章来源:https://www.toymoban.com/news/detail-424923.html
// 默认数据库配置:
// 引入前先: npm i mssql 下载依赖包
const mssql = require('mssql')
// 默认数据库配置:
const option = {
// sql server数据库所在服务器:
server: '***.**.***.***',
// sql server数据库监听的端口号,默认1433:
port: ****,
// sql server数据库某个数据库名称:
database: '********2021',
// 用户名:
user: '******',
// 密码:
password: '*********',
options: {
encrypt: false, //加密
enableArithAbort: false
},
pool: {
min: 0,
max: 10,
idleTimeoutMillis: 3000
}
}
// 创建默认数据库连接池:
const pool = new mssql.ConnectionPool(option)
pool.on('error', err => {
console.log('数据库连接错误: ', err)
})
// 连接数据库:
const connection = pool.connect()
// 封装一个执行sql语句的方法,用来操作数据库:
const defaultDataBaseQuery = async (sql, callBack) => {
const ps = new mssql.PreparedStatement(await connection)
ps.prepare(sql, err => {
if (err){
console.log('prepare错误:' + err)
return
}
ps.execute('', (err, result) => {
if (err){
console.log('execute错误:' + err)
return
}
ps.unprepare(err => {
if (err){
console.log('unprepare错误:' + err)
callBack(err, null)
return
}
callBack(err, result)
})
})
})
}
// 导出默认数据库:
module.exports = defaultDataBaseQuery
配置动态数据库 :动态数据库是指按规定的日期自动切换到某个数据,文件命名为:mssqlswitchconfig.js文章来源地址https://www.toymoban.com/news/detail-424923.html
// 动态库配置:
const mssql = require('mssql')
// 定时事务:一个第三方的包,类似定时器,可以设置某段代码多久执行一次(某个日期点执行某段代码)
const schedule = require('node-schedule')
// 引入默认数据库配置:动态库切换也是需要借助基础库的,因此需要引入基础库:
const defaultDataBaseQuery = require('./mssqldefaultconfig')
// 导出一个动态的数据库配置:按年份配置数据库
function createSqlServeOption() {
let date = new Date()
let yearstr = date.getFullYear()
// 动态数据库配置:
let optionObj = {
server: '***.**.***.***',
port: ****,
// 动态库命名最方便的就是前缀固定+后缀年份等
database: '******' + yearstr,
user: '*****',
password: '************',
options: {
encrypt: false, //加密
enableArithAbort: false
},
pool: {
min: 0,
max: 10,
idleTimeoutMillis: 3000
}
}
return optionObj
}
// 程序启动配置当前年份动态库option:
let option = createSqlServeOption()
// 数据库连接变量
let pool;
// 程序启动连接当前年份动态库:
pool = new mssql.ConnectionPool(option)
// 每年1月1日自动切换到最新数据库:
schedule.scheduleJob('0 0 0 1 1 *', function () {
const date = new Date()
const yearstr = date.getFullYear()
let dbStr = '******' + yearstr
// 降低频率切换:因为此项目为老项目二开,数据库中数据和数据结构都是不动的,只提供使用权,这里动态创建新的数据库业务不在我项目,所以我无法创建数据库且不确定新的数据库是否已经创建好,因此只能不断的查询新的数据库是否存在,如果存在
到了这里,关于SQL Server简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!