sqlserver数据库

SQLServer —— 用户权限操作

删除回忆录丶 提交于 2019-12-23 07:57:11
说明 以下操作都是基于SQLServer登陆验证方式登陆。而且操作员都是 sa。 一、添加登陆账号 use master go exec sp_addlogin 'xu', '123456' 第一个(xu)是登陆名,第二个(123456)是登陆密码。 执行语句,就可以在安全性\登陆名里看到新创建的账号了。 二、创建数据库用户 use StudentManageDB go exec sp_grantdbaccess 'xu', 'xuUser01' 第一个(xu)是登陆名,第二个(xuUser01)是指定数据库用户。 执行语句,就可以在指定数据库安全性\登陆名里看到新创建的账号了。 三、删除登陆账号 use master go exec sp_droplogin 'xu' 这样 xu 这个登陆账号就被删除了。 四、删除数据库用户 use StudentManageDB go exec sp_dropuser 'xuUser01' 这样 xuUser01这个数据库用户就被删除了。 五、向数据库用户授权 授权的语法: grant 权限 [on 表名] to 数据库用户 比如我新添加了一个登陆账号 xu,也给 StudentManageDB 数据库添加了数据库用户 xuUser01,现在我给这个数据库用户赋予对该数据库下的表 Students 查、增、改的权限。如下。 use

java链接sqlserver数据库 sqlserver jdbc引入

人走茶凉 提交于 2019-12-23 02:31:11
maven添加sqlserver的jdbc驱动包 http://search.maven.org/中没有sqlserver的jdbc驱动,所以需要本地安装sqljdbc的jar包,然后再在pom里面引入 1、下载sqlserver jdbc 微软官方下载地址 http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774 2、将下载的包放在仓库 com下 3、maven 安装 sqlserver jdbc 1)管理员方式打开cmd.exe 2)cd 到sqljdbc42.jar 绝对路径,如:D:\Software\sqlservermaven驱动\chs\jre8 3)执行以下maven命令(命令解释:mvn install:install-file -Dfile=“jar包的绝对路径” -Dpackaging=“文件打包方式” -DgroupId=groupid名 -DartifactId=artifactId名 -Dversion=jar版本 ): mvn install:install-file -Dfile=sqljdbc42.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4

sqlserver、oracle数据库排序空值null问题解决办法

孤街醉人 提交于 2019-12-18 20:01:22
【sqlserver】: sqlserver 认为 null 最小。 升序排列 :null 值默认排在最前。 要想排后面,则:order by case when col is null then 1 else 0 end ,col 降序排列 :null 值默认排在最后。 要想排在前面,则:order by case when col is null then 0 else 1 end , col desc 注:红色标记别忘了 【oracle】: oracle认为 null 最大。 升序排列, 默认情况下,null值排后面。 降序排序, 默认情况下,null值排前面。 有几种办法改变这种情况: (1)用 nvl 函数或decode 函数 将null转换为一特定值 (2)用case语法将null转换为一特定值(oracle9i以后版本支持。和sqlserver类似): order by (case mycol when null then ’北京漂客’ else mycol end) (3)使用nulls first 或者nulls last 语法。 这是oracle专门用来null值排序的语法。 nulls first :将null排在最前面。如:select * from mytb order by mycol nulls first null last :将null排在最后面

利用Socket监听SqlServer数据库的变化,并推送消息到客户端

扶醉桌前 提交于 2019-12-16 21:10:33
新建一个SQL CLR数据库项目,来对数据库的变化进行监听,如:当有数据发生变化(增删改), SQL CLR数据库项目就会获得通知,此时我们在开启一个Socket,将数据库变化的消息发送到IIS服务器,IIS服务器然后再发布出数据库已发送变化的消息,此时连接到服务器的客户端就会收到通知,就会根据服务器发来的表名,去决定是否需要重新获取数据,已达到客户端的数据是实时数据的效果: 第一步: 第二: using System; using System.Data; using System.Data.SqlClient; using Microsoft.SqlServer.Server; using System.Text.RegularExpressions; using System.Web.Services; using System.Net.Sockets; using System.Threading; using System.Net; using System.Text; using System.Collections.Generic; using System.Runtime.Remoting.Contexts; public partial class Triggers { // 为目标输入现有表或视图并取消对特性行的注释 [Microsoft.SqlServer

Node连接Oracle数据库

拥有回忆 提交于 2019-12-16 06:02:20
需求背景 之前项目里node连的是SQLserver数据库(用的mssql插件),但有的项目上用的Oracle,因此在兼容性上需要做扩展以支持连接Oracle数据库。这里用的是oracledb插件。 环境准备 根据 Oracle数据库版本 下载相应的Oracle即使客户端,下载地址为 Oracle Instant Client Downloads 根据数据库版本下载 basic版本即可 2、解压后放到服务器上适当的位置,复制该文件夹的目录(如C:\oracle\instantclient_12_2),配置系统环境变量 配置好保存即可,上面的图是window10的环境变量的设置。window7环境变量要注意的path路径添加时注意;隔开 3、以上完成后,进入nodeServer文件夹打开.env文件,把DB_TYPE变量设置成oracle ##配置完成后, 重新启动node程序即可 来源: CSDN 作者: 黑俊马 链接: https://blog.csdn.net/sj1314520sj/article/details/103473881

sqlserver数据库批量插入-SqlBulkCopy

血红的双手。 提交于 2019-12-14 12:45:06
当想在数据库中插入大量数据时,使用insert 不仅效率低,而且会导致一系列的数据库性能问题 当使用insert语句进行插入数据时。我使用了两种方式: 每次插入数据时,都只插入一条数据库,这个会导致每次插入数据时不断打开关闭数据库链接,导致效率过低(最差) 使用拼接字符串的方式来进行批量插入数据,但是使用StringBuilder 会占用极大的内存 以上方式对于批量插入数据都不是一个好的选择, 针对这种情况我使用了SqlBulkCopy sqlbulkCopy:将其它数据源批量加载sqlserver表,就是可以将其它数据源插入到数据库中 示例代码: 创建测试User表: 1 CREATE TABLE [dbo].[Users]( 2 [Id] [uniqueidentifier] NOT NULL, 3 [Name] [nvarchar](100) NULL, 4 [Gender] [int] NULL, 5 [Age] [int] NULL, 6 [CityId] [int] NULL, 7 [OpTime] [datetime] NULL, 8 CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED([Id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP

Oracle转SqlServer

被刻印的时光 ゝ 提交于 2019-12-11 08:30:26
基础数据所对应的类型不同 在Oracle中有一些基础类型与Sqlserver中名字一样,但是所存储的数据格式不同,Date类型在Oracle中精确到秒,在Sqlserver中只能精确到分 表的结构 Oracle中所有的表都有一个共同的字段,rowid这是在物理上存在的,记录了每一条记录的行位置,rownum 是逻辑上的,根据排序方式的不同会出现不同的rownum,因为Oracle的这个特性,经常在进行一些crud操作的时候会通过rowid来进行,导致在转数据库的时候会遇到各种麻烦,所以我建议各位不管是使用哪一种数据库最好是使用标准sql,并且不要太依赖某种数据库的特性。我开始是想通过row_number()加with as 去代替rowid,但是总会出现一些奇怪的问题,你前一次查询的id,重新进入数据库操作的时候改变的是另外一条记录,最后的解决方式我把每一张表都添加上了rowid Oracle的to_date,to_char方法 在转Oracle数据库的时候这两个方法出现了很多次,看他们的名字就知道是干什么的,Sqlserver中没有这样的方法,但是有conver,cast方法这两个方法可以实现Oacle两个方法的所有功能 Oracle的NVL方法可以用isnull代替 在Oracle中子查询语句可以有order by,而在sqlserver需要添加top()函数

SqlServer用sql语句清理log日志

北慕城南 提交于 2019-12-10 23:28:23
原文: SqlServer用sql语句清理log日志 USE[master] ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式 USE 数据库名 DBCC SHRINKFILE (N'数据库名_log' , 2, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定 USE[master] ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式    来源: https://www.cnblogs.com/lonelyxmas/p/12019836.html

SQLserver数据库-学习笔记-查询

折月煮酒 提交于 2019-12-09 15:22:32
1.查询整张表 select * from 表名; 2.查询表中的某几列 select 列名,列名 form 表名 3.查询时对某列进行计算并命名 select 列名*12 as "名字" from 表名 4.过滤重复的项目 select distinct 列名 from 表名 会过滤掉重复的null,也可以对多列的组合进行过滤 5.在某个范围之间查找 select * from 表名 where 条件 and/or 条件 6.查找属于诺干个孤立的值 select * from 表名 where 列名 in (xxx,xxx,xxx) 数据库中不等于的写法为 != <> 7.查找最前面的几条记录 select top x * from 表名 percent表示百分比 8.查找null值 select * from 表名 where 列名 is null 查找为空的值 select * from 表名 where 列名 is not null 查找不为空的值 任何数值与空计算都为空 isnull(列名,0)表示将该列中的空值都按0计算 9.排序 order by 列名 desc/asc desc表示降序,asc表示升序(默认即为升序,可不写) 来源: https://www.cnblogs.com/renren-study-notes/p/12010753.html

带参数的存储过程

百般思念 提交于 2019-12-06 13:03:25
带参数的存储过程 创建带参数的sql存储过程:创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用惟一的名称进行定义。与标准的Transact-SQL变量相同,参数名必须以@为前缀, 创建带参数的存储过程 创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用惟一的名称进行定义。与标准的Transact-SQL变量相同,参数名必须以@为前缀,并且遵从对象标识符规则。当用户不提供该参数的值时可以使用一个默认值来代替。 在执行带参数的存储过程时,既可以通过显式指定参数名称并赋予适当的值,也可以通过提供在CREATE PROCEDURE语句中给定的参数值(不指定参数名称)来向存储过程传递值。 在存储过程PRO_Student_IN中命名4个参数,其定义顺序为@Chinese、@English、@maths和@class。 例如,将值传递给存储过程指定的参数名称。 EXEC PRO_Student_IN @class="三年一班",@Chinese=85,@maths=85,@English=85 例如,按照参数的位置传递,而不命名参数名称。 EXEC PRO_Student_IN 85,85,85,"三年一班" 1.不带默认值的参数 创建一个参数不带默认值的存储过程,在调用该存储过程时,必须对存储过程中的所有参数进行赋值,如果有一个参数没有赋值