sqlserver

Linux下操作SQLServer

独自空忆成欢 提交于 2019-11-28 19:43:26
1. 说明  SQL Server是由Microsoft开发和推广的关系数据库管理系统。本文介绍在linux系统下,SQL Server的基本命令。 2. SQLServer基本命令 > sqlcmd -S localhost -U SA -P 密码 # 用命令行连接 (1) 建库 > create database testme > go (2) 看当前数据库列表 > select * from SysDatabases > go (3) 看当前数据表 > use 库名 > select * from sysobjects where xtype='u' > go (4) 看表的内容 > select * from 表名; > go 3. Python程序访问SQLServer数据库 import pymssql server = 'localhost' user = 'sa' password = 密码 database = 'ecology' conn = pymssql.connect(server, user, password, database) cursor = conn.cursor() cursor.execute(""" IF OBJECT_ID('persons', 'U') IS NOT NULL DROP TABLE persons CREATE

SqlServer按照指定顺序对字段进行排序

自古美人都是妖i 提交于 2019-11-28 18:15:38
昨天在Q群上面有个朋友提出个SQL查询的问题寻求解决方法,结果小查了一下资料然后帮他解决了问题,算是学了点小技巧,这里记录一下^^。 问题如下,在SqlServer有一个这样的SQL查询,select * from Product where ID in (12490,12494,12486)。在一个名为Project的表中对自增字段ID做in查询,他希望查出来的记录ID字段 按照'12490','12494','12486'这个顺序来排 ,但是很不幸的是查出来后的记录是 按照ID的进行正排序 ,这并不符合他的要求。 查出的结果如下: 由于对SQL实在是不熟悉,于是我查了点资料,发现可以用SqlServer的 CHARINDEX 方法来完成这一实现,最终给出如下的答案, select * from Product where ID in ( 12490 , 12494 , 12486 ) order by CHARINDEX( ',' + CONVERT ( varchar (10),ID)+ ',' , ',12490,12494,12486,' ) 查询的结果如下: 说明:这里用到一个小技巧,就是把ID转成字符串,然后在 两边加上"," ,组合一个字符串,用逗号隔开每个ID,然后查询ID的下标值(之所以两边加上","是因为查询下标的时候类似ID=123和ID

Springboot 前后分离 vue.js html 跨域 集成代码生成器 shiro权限

我的未来我决定 提交于 2019-11-28 17:33:40
特别注意: Springboot 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+接口 前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 (特别注意,前端用的vue.js, 就是html页面引入vue.js形式, 用tomcat部署运行,更适合后台开发者) 工作流模块------------------------------------------------------------------------------------------- 1.模型管理 :web在线流程设计器、预览流程xml、导出xml、部署流程 2.流程管理 :导入导出流程资源文件、查看流程图、根据流程实例反射出流程模型、激活挂起 3.运行中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办人 4.历史的流程:查看流程信息、流程用时、流程状态、查看任务发起人信息 5.待办任务 :查看本人个人任务以及本角色下的任务、办理、驳回、作废、指派一下代理人 6.已办任务 :查看自己办理过的任务以及流程信息、流程图、流程状态(作废 驳回 正常完成) 注:当办理完当前任务时

SQLServer数据批量导入的几种方式

心不动则不痛 提交于 2019-11-28 16:30:41
SQLServer数据批量导入的几种方式 说到SQLServer 的数据批量导入,下面用常用的几种方式做下对比,后面详细介绍每种方式如何使用(本文的代码使用语言c#) 导入方式 是否需写代码 导入过程能否对数据加工 插入数据的速度 多表数据导入 是否必需写SQL语句 1.通过SQLServer客户端管理工具 F F 快 F F 2.循环调用插入语句、或存储过程 T T 慢 T T 3.使用 SqlBulkCopy T F 快 F F 4.使用SQLServer表值参数 T T 快 T T 1.通过SQLServer客户端管理工具 打开SQLServer客户端连接要操作的数据库引擎 右键要操作的数据库,选择任务--导入数据,第一次使用会弹出向导页如下图: 点下一步,一般要导入的数据都是excel,数据源我们选择 Microsofy Excel (不同版本会有些差异), 浏览选择要导入的excel文件; 下一步选择目标数据源选择我们的SQLServer 根据需要一直点下一步,需要注意在选择表和数据源页面,根据实际需要选择对应的表,以及编辑列的映射, 最后点击完成,导入数据。 2.循环调用插入语句、或存储过程 此方法就是调用写好的sql语句或存储过程来循环的插入数据导数据库;根据需要可以在读取文件数据后,对数据进行校验和加工。 下面代码是一个循环插入的实现,如果需要输出导入进度可以用

SQL Server与MySQL之间的切换

我的未来我决定 提交于 2019-11-28 09:26:23
很久没有写帖子了,以前一直在CSDN上写一些文章,现在想来开源中国写点东西,希望在这里能和大家分享一些开发以及项目上的经验,废话不多说,进入主题! 最近做一个项目,由于我们持久层选择的是hibernate,而hibernate的dialect大家都是很了解的了。hibernate很好的支持了不同的数据库信息,即程序已经很好的兼容了数据库,但是不同版本的数据库模型之间交换,就让人很头疼了。 开始尝试了power-designer的反向工程,后来又搞了hbm反向生产sql。但是都会出现多多少少的问题。无意间想起来在之前工作中使用过的navicat。说到navicat,想必大家都用过,尤其是搞Java的。我也曾经听说SQLYog好用。但是,在处理不同数据之间的兼容,我觉得navicat表现的很强悍。 大家已经明白了,在此,当处理不同数据之间的转换时,我们可以通过navicat帮我们进行复制转换。 有一点不足之处,就是丢失外键关联。 来源: oschina 链接: https://my.oschina.net/u/161336/blog/122158

EntityFrameworkCore 试用

北慕城南 提交于 2019-11-28 08:32:35
引用 EF Core Sqlite Install-Package Microsoft.EntityFrameworkCore.SqlServer 引用 EF Core Tool Install-Package Microsoft.EntityFrameworkCore.Tools –Pre 引用 EF Core Sqlite Design Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design 引用好以后我们在project.json -> tools 节点加上 "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" "tools": { "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", "BundlerMinifier.Core": "2.0.238", "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" }, 可以使用 dotnet 命令

超详细SQL SERVER 2016跨网段和局域网发布订阅配置图解和常见问题

醉酒当歌 提交于 2019-11-28 07:17:04
前方高能,要有点耐心,图片较多,注意在wifi环境下看,刷爆流量不赔 最近学习了一下配置SqlServer数据库的同步订阅功能,过程中遇到了一些常见的问题,下面把详细的配置过程和问题作一个汇总,希望能帮到有需要的朋友。 这次实验分别在局域网和跨网段进行,先局域网中配置,再跨网段配置,按需查看。 下面文章的内容将分为两个部分 目录 一、通过非命令行方式配置同步订阅 (1)实验环境说明 (2)实验前准备 (3)订阅设置 (4)测试同步订阅 二、常见问题汇总 三、总结 正文部分 一、通过非命令行方式配置同步订阅 (1)实验环境说明 实验环境,两台在同一局域网(跨网段的在后面再详细说明)的PC机,这里PC1是作为分发服务器,PC2作为订阅服务器 PC1 系统:win10 数据库版本:SQL Server 2016 IP:192.168.0.62 Sqlserver端口:1433 计算机名:DESKTOP-Aaron1 工作组:WORKGROUP 用户名:SqlServer PC2 系统:win10 数据库版本:SQL Server 2016 IP:192.168.0.152 Sqlserver端口:1433 计算机名:DESKTOP-Aaron2 工作组:WORKGROUP 用户名:SqlServer (2)实验前准备 检查几个设置,这是实验成功的关键,PC1和PC2都要进行相同的配置。

SQLSERVER SQL性能优化

一世执手 提交于 2019-11-28 06:32:30
1.选择最有效率的表名顺序(只在基于规则的优化器中有效)      SQLSERVER 的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表driving table)将被最先处理,在FROM子句中包含多个表的情况下,必须选择记录条数最少的表作为基础表,当 SQLSERVER 处理多个表时,会运用排序及合并的方式连接它们,    首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行排序;然后扫描第二个表(FROM子句中最后第二个表);最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并    例如: 表 TAB1 16,384 条记录表 TAB2 5 条记录,选择TAB2作为基础表 (最好的方法) select count(*) from tab1,tab2 执行时间0.96秒,选择TAB2作为基础表 (不佳的方法) select count(*) from tab2,tab1 执行时间26.09秒; 如果有3个以上的表连接查询,那就需要选择交叉表(intersection table)作为基础表,交叉表是指那个被其他表所引用的表      例如:    EMP表描述了LOCATION表和CATEGORY表的交集    SELECT *    FROM LOCATION L,    CATEGORY C,    EMP E