当前位置: 首页 > news >正文

nodejs动态创建sql server表

安装库

链接sql server

npm i mssql

封装请求函数

query_sql.js

const sql = require('mssql')const pool = new sql.ConnectionPool({user: 'aa',password: '*******',server: '127.0.0.1',database: 'BB',port: 1433,options: {encrypt: false},pool: {min: 0,max: 10,idleTimeoutMillis: 10000}
})const querySql = (sql) => {return new Promise(async (resolve, reject) => {try {await pool.connect()const result = await pool.request().query(sql)resolve(result.recordset)} catch (err) {reject(err)} finally {pool.close()}})
}module.exports = querySql

动态创建方法

create_sql_table.js

const querySql = require('./query_sql')const createTable = (table_name, field_list) => {// 输入校验if (typeof table_name !== 'string' || table_name.trim() === '') {throw new Error('Invalid table name: must be a non-empty string')}if (!Array.isArray(field_list)) {throw new Error('Invalid field list: must be an array')}// 校验并生成字段定义if (field_list.length === 0) {throw new Error('Field list cannot be empty')}const field_list_column = field_list.map((item) => {return `${item.name} ${item.type ? item.type : 'VARCHAR(255)'}${item.is_key ? ' PRIMARY KEY' : ''} ${item.nullable ? 'NOT NULL' : ''}`}).join(', ')const field_list_text = field_list.map((item) => {return `EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'${item.text}',@level0type = N'SCHEMA', @level0name = 'dbo',@level1type = N'TABLE', @level1name = '${table_name}',@level2type = N'COLUMN', @level2name = '${item.name}';`}).join('\n')return `IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = OBJECT_ID(N'[dbo].[${table_name}]') AND type in (N'U'))BEGINCREATE TABLE ${table_name} (${field_list_column})END${field_list_text}`
}const createdYSsubcontractorder = async () => {const table_name = 'test_table'const table_list = [{ name: 'id', text: '唯一值', is_key: true },{ name: 'state', text: '状态:0-已审批,1-驳回' },{ name: 'editDate', text: '修改日期' },{ name: 'createTime', text: '创建时间' }]try {const sql = createTable(table_name, table_list)console.log(sql)await querySql(sql)console.log('表和注释已成功创建')} catch (err) {console.error('操作失败:', err)}
}createdYSsubcontractorder()

http://www.dtcms.com/a/428012.html

相关文章:

  • 做平面设计什么素材网站好使张家港网站建设优化
  • Java 进阶--函数式编程
  • 《道德经》第九章
  • 网站首页怎么做ps中国营销传播网
  • 镇江网友之家百度上如何做优化网站
  • 网站分辨率自适应代码模板网站定制网站
  • 建设网站的网站安全建设银行网站怎么修改手机号码吗
  • 网站后台可以做两个管理系统么wordpress wpenqueuestyle
  • 两种常见的ACM风格笔试题
  • 图神经网络分享系列-transe(Translating Embeddings for Modeling Multi-relational Data) (一)
  • ENVI系列教程(十九)——目标探测与识别
  • 校园超市网站开发整站优seo排名点击
  • 服务器放n个网站自己做鞋子网站
  • Spring核心 - 控制反转 IOC , 用来大量例子来解释
  • 关键词查询的分析网站有网打不开网页咋回事
  • 大型电子商务网站建设成本双流区的规划建设局网站
  • 从引流到生态:排队免单如何重构商家私域流量?
  • 云网站制作的流程图烟台网站制作厂家联系方式
  • 做视频网站要多大的主机中国建设人才信息网查
  • 网站建设发文章几点发比较合适网站开发 平均工资
  • Android dm设备和分区关系以及文件系统介绍
  • 安卓基础组件013--button
  • @MySQL 主从自动修复 - 复制错误
  • 一级造价工程师报名网站枝江市住房和城乡建设局网站
  • 网站上传程序流程it外包公司是什么意思
  • Day1 Linux 入门:9 个核心命令(whoami/id/pwd 等)
  • 【RabbitMQ】docker-compose编排部署RabbitMQ容器——CentOS
  • 免费推广网站2024建设一个图片下载网站
  • TypeScript的类型兼容是什么?
  • 网站怎么提交收录建立网站需要多少钱?