数据库
C++业余爱好者
很多人努力奔跑也很难追赶上年轻时的步伐,更何况,大部分人都是走走停停。
展开
-
oracle包中存储过程返回结果集
ORACEL 包中的存储过程返回结果集需要在包中定义一个游标变量,存储过程中使用该变量返回结果集。原创 2022-08-18 15:58:22 · 2334 阅读 · 0 评论 -
SQLSERVER 名为 ‘myCursor‘ 的游标已存在
捕捉异常,在抛出异常之前判断是否有未释放游标。原创 2022-08-01 16:42:27 · 1312 阅读 · 0 评论 -
PLSQL远程连接数据库
instantclient_12_1中包含是SQLPLUS,也可以通过CMD窗口连接数据库。配置系统变量NLS_LANG,值就是我们查询到的数据库编码,重启PLSQL后生效。tnsnames.orc文件放到本地目录,并配置系统变量。plsql的安装非常简单,直接下一步安装即可。非登录状态进入PLSQL主页,工具-首选项。使用SQL语句查询当前数据库服务器编码。连接成功,进入主页面。...原创 2022-07-27 23:04:51 · 3246 阅读 · 0 评论 -
ORACLE数据库介绍
由于oracle的数据库不是普通的概念,oracle是有用户和表空间对数据进行管理和存放的。ORACLE数据库系统是美国ORACLE公(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。用户是在表空间下建立的。用户登陆后只能看到和操作自己的表,ORACLE的用户与MYSQL的数据库类似,每建立一个应用需要创建一个用户。注表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。....原创 2022-07-27 08:21:54 · 1560 阅读 · 0 评论 -
SQLSERVER 查看当前用户 应用 及IP
查看当前用户 应用 及IP原创 2022-06-30 10:33:36 · 3100 阅读 · 0 评论 -
秒懂SQL SERVERE 数据库中RAISERROR的基本用法
raiserror原创 2022-06-13 10:43:42 · 2676 阅读 · 0 评论 -
简单理解FOR XML PATH (‘‘)
概述FOR XML PATH (‘XML’),一般使用于SELECT语句末尾,使结果集转为XML文档形式,其中每一行对应一个XML父节点,XML为父节点名称,字段名为子节点名称。示例--学生表SELECT 编号,姓名,年龄,兴趣 FROM STUDENT 编号 姓名 年龄 兴趣10001 小红 6 唱歌10001 小红 6 跳舞10002 小明 6 唱歌10002 小明 6 跳舞10003 小王 6 唱歌10003 小王 6 跳舞 --使用FOR XML PATHSELE原创 2022-05-25 10:27:44 · 1111 阅读 · 0 评论 -
nchar与nvarchar的直观体验
定义nchar固定长度,占用固定的内存大小,不足时补全空格。nvcarchar可变长度,占用固定的内存大小根据存储内容而定。示例输出nchar存储逻辑相对简单,当存储固定长度的字段时,使用nchar效率更高。如果不确定字段长度,使用nvarchar对内存更友好。...原创 2022-05-25 09:47:36 · 201 阅读 · 0 评论 -
使用登录触发器限制SQL Server登录身份验证范围
本文在安全方面包含SQL Server登录身份验证范围,即如何可以控制SQL Server级登录触发器控制登录身份验证扩展。常见SQL Server主体是客户端和登录名,并且受GRANT和DENY的授权约束。 SQL Server数据库引擎将通过来自任何Query Management Studio(SSMS),Application Integration或某些其他设备的身份验证请求来授权登录。开发,QA或阶段服务器可以允许所有登录使用不同的客户应用程序对SQL Server进行身份验证,但是对于生产原创 2022-03-15 10:49:44 · 1324 阅读 · 1 评论 -
SQLSERVER where条件加判断语句
WHERE--若变量为空则执行1=1条件 否则 判断字段与变量是否符合(1=(CASE WHEN @name IS NULL THEN 1 ELSE 0 END) OR t.name=@name) AND(1=(CASE WHEN @id IS NULL THEN 1 ELSE 0 END) OR t.ID =@id)原创 2022-03-12 13:37:49 · 3431 阅读 · 0 评论 -
无法解决 equal to 运算中 “Chinese_PRC_CI_AS“ 和 “SQL_Latin1_General_CP1_CI_AS“ 之间的排序规则冲突
由于排序规则冲突可以使用以下语句WHERE ... ON T1.name COLLATE DATABASE_DEFAULT= T2.name COLLATE DATABASE_DEFAULT原创 2021-12-28 17:38:21 · 1510 阅读 · 0 评论 -
SQLSERVER创建维护计划自动备份
创建维护计划向导设置维护计划执行周期维护计划执行作业原创 2021-12-07 11:46:56 · 940 阅读 · 0 评论 -
SQL语句根据分割符分割字符串
利用PARSENAME函数分割字符串DECLARE @str nvarchar(50)=N'NBA||湖人||老詹||MVP';SELECT PARSENAME(REPLACE(@str,'||','.'),4), PARSENAME(REPLACE(@str,'||','.'),3), PARSENAME(REPLACE(@str,'||','.'),2), PARSENAME(REPLACE(@str,'||','.'),1) ...原创 2021-12-04 17:11:43 · 1575 阅读 · 0 评论 -
秒懂 SCOPE_IDENTITY
场景表A主键是自增列,插入一条记录后想要获取这条记录主键的返回值,这时候可以用SCOPE_IDENTITY 。示例建表语句CREATE TABLE TestTable(ID int identity(1,1) not null,Name varchar(20) not null)插入记录,看是否能获取到主键的返回值INSERT INTO TestTable(Name) values('张三') SELECT SCOPE_IDENTITY()SELECT * FROM TestTable原创 2021-12-01 10:11:52 · 1628 阅读 · 0 评论 -
LEFT JOIN/JOIN/OUTER APPLY/CROSS APPLY的比较
建表CREATE TABLE [dbo].[Customers]( [customerid] [char](5) COLLATE Chinese_PRC_CI_AS NOT NULL, [city] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,PRIMARY KEY CLUSTERED ( [customerid] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRI原创 2021-11-30 08:55:59 · 611 阅读 · 0 评论 -
SQL 关于apply的两种形式cross apply 和 outer apply
SQL 关于apply的两种形式cross apply 和 outer applyapply有两种形式: cross apply 和 outer apply先看看语法:<left_table_expression> {cross|outer} apply <right_table_expression>cross apply和outer apply 可以理解为先运算左表表达式,再把左表表达式应用到右表表达式。如果cross apply左行应用右表表达式时返回空积,则不返转载 2021-10-18 16:54:46 · 998 阅读 · 0 评论 -
SQL WITH AS 递归查询
一、CTE特性从SQL Server 2005开始,提供了CTE(Common Table Expression,公用表表达式) 的语法支持。CTE是定义在SELECT、INSERT、UPDATE或DELETE语句中的临时命名的结果集,同时CTE也可以用在视图的定义中。在CTE中可以包括对自身的引用,因此这种表达式也被称为递归CTE。1.CTE的优点公用表表达式提供的功能其实和视图差不多,但是它不像视图一样把SQL语句保存在我们的数据库里面。微软官方给出的使用CTE的优势:1.可以编写一个递归原创 2021-10-18 13:10:15 · 630 阅读 · 0 评论 -
FreeSql简介
官方文档:http://freesql.net/guide/#freesqlFreeSql是功能强大的 .NET ORM,支持 .NetFramework 4.0+、.NetCore 2.1+、Xamarin等支持 NetStandard 所有运行平台。支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/神通/人大金仓/翰高/华为GaussDB/MsAccess 数据库。模型FreeSql 使用模型执行数据访问,模型由实体类表示数据库表或视原创 2021-10-16 11:45:12 · 2409 阅读 · 0 评论 -
SQL Server 追踪工具
一、SQL Profiler工具简介SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:图形化监视SQL Server查询;在后台收集查询信息;分析性能;诊断像死锁之类的问题;调试T-SQL语句;模拟重放SQL Server活动;也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。1、Profiler跟踪从开始=》所有程序=》Microsoft SQL Server 2008=》性能工具打开Profiler原创 2021-10-15 14:47:46 · 1236 阅读 · 0 评论 -
根据A表的信息更新C表的信息
BEGIN TRANSACTIONupdate C set Info =A.info from A where A.id=C.IdCOMMIT TRANSACTION原创 2021-10-13 15:59:44 · 126 阅读 · 0 评论 -
SQLServer链接服务器和同义词
在数据库的日常维护中,经常会遇到跨服务器的数据传输。例如A服务器上的数据每天要从B服务器上去获取数据,然后插入到自己的服务器上。这种情况就要用到链接服务器了。1.建立链接服务器①点击【服务器对象】-【新建】-【链接服务器】。 添加完成后在链接服务器中就可以看到我们添加的服务器了。新建查询窗口就可以从远程服务器查询到信息了 --[服务器].[数据库].[架构].[表名]select * from [192.168.1.123].[test].[dbo].[staff]2.同原创 2021-09-18 16:28:45 · 443 阅读 · 0 评论 -
C#捕捉SQLServer中的异常
C#程序调用SQLServer即使没有trycatch语句,如果发生异常也会被抛出并且在C#代码中捕获。我需要专门捕获SQL服务器超时异常,以便他们可以处理不同。我知道我可以赶上SqlException,然后检查如果消息字符串包含“超时”,但是想知道是否有一个更好的方法做到吗?try{ //some code}catch (SqlException ex){ if (ex.Message.Contains("Timeout")) { //handle原创 2021-09-17 13:30:09 · 852 阅读 · 0 评论 -
SQLServer表变量与临时表
表变量变量都以@或@@为前缀,表变量是变量的一种,另外一种变量被称为标量(可以理解为标准变量,就是标准数据类型的变量,例如整型int或者日期型DateTime)。以@前缀的表变量是本地的,因此只有在当前用户会话中才可以访问,而@@前缀的表变量是全局的,通常都是系统变量,比如说@@error代表最近的一个T-SQL语句的报错号。当然因为表变量首先是个变量,因此它只能在一个Batch中生存,也就是我们所说的边界,超出了这个边界,表变量也就消亡了。表变量存放在内存中,正是因为这一点所有用户访问表变量的时候SQ原创 2021-09-17 11:43:05 · 961 阅读 · 0 评论 -
SQLServer 自定义表类型
用户定义表数据类型是从SQL Server 2008开始提供的一种新功能。下面的语句首先创建一个名为CustomerTableType的表数据类型,然后创建一个基于该类型的变量,并向其中插入数据和查询数据。--创建用户自定义表类型CREATE TYPE dbo.CustomerTable AS TABLE (id int NOT NULL, name char(10) NULL, age int PRIMARY KEY (Id))---使用用户自定义表类型DECLARE @t Custo原创 2021-09-17 08:51:36 · 642 阅读 · 0 评论 -
SQL Server读取EXCEL数据
首先安装Microsoft Access 2010 数据库引擎:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255 --启用Ad Hoc Distributed Queries:exec sp_configure "show advanced options",1reconfigureexec sp_configure "Ad Hoc Distributed Queries",1reconfigureselec原创 2021-09-16 16:16:46 · 1246 阅读 · 0 评论 -
.NET 操作SQLServer数据库基础
连接语句:“Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名称;Data Source=服务器地址;User Id =用户名; Password =密码”;当Integrated Security=SSPI或True时表示为windows身份验证,不需要用户名密码。 SqlConnection myconn = new SqlConnection(constr);//建立连接 myconn.原创 2021-09-14 17:11:51 · 444 阅读 · 0 评论 -
SQL Server数据并发处理
多用户数据库:允许多个用户同时使用的数据库(订票系统)并发操作带来的数据不一致性包括 1)丢失修改(lost update) 2)不可重复读(non-repeatable read) 3)读脏数据(dirty read)并发控制的主要技术 1)悲观并发 3)乐观并发锁与事务封锁:封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能原创 2021-09-12 16:39:50 · 2632 阅读 · 0 评论 -
数据库设计三范式与反范式
实际开发工作中也确实经常要考虑范式与反范式的平衡,看到大神的博文摘了一段过来分享一下。三范式与反范式范式是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。大数据生态中,各类强大的查询引擎层出不穷,相对廉价的磁盘和分布式技术,也让数据冗余变得可接受甚至更加方便。在创建一个数据库的过程中,范化是将其转化为一些表的过程,这种方法可以使从数据库得到的结果更加明确。这样可能使数据库产生重复数据,从而导致创建原创 2021-09-12 15:02:20 · 528 阅读 · 0 评论 -
SQLserver With As 用法
一.WITH AS的含义简单理解为可复用的SQL查询结果集。WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WI原创 2021-09-12 13:26:28 · 764 阅读 · 0 评论 -
SQLServer 常用函数汇总
SYSDATETIME() 系统时间GETDATE() 当前时间CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] ) --可用来当做Contains函数expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。expressionToSearch :用于被查找的字符串。start_location:开始查找的位置,为空时默认从第一位开始查找。EXEC sp_原创 2021-09-12 11:41:22 · 4875 阅读 · 0 评论 -
SQLServer 数据类型int、bigint、smallint 和 tinyint范围
使用整数数据的精确数字数据类型。bigint 数值范围从 -2^63 (-9223372036854775808) 到 2^63-1(9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int 数值范围从 -2^31 (-2,147,483,648) 到 2^31 - 1(2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。smallint 数值范围从 -2^15 (-32,76原创 2021-09-12 10:59:09 · 7700 阅读 · 0 评论 -
SQLServer 中的 char varchar、nchar、nvarchar
一、char与varcharchar(10)varchar(10)写入“abc”char 损耗了硬盘10字节 = “abc”长度 + 7个空字符varchar损耗了硬盘3字节 = “abc”长度varchar:可变长度,会根据实际存储数据的大小动态重新分配存储空间。char:固定长度,存储3个字符也是要占用10个字节的,会自动补7个空格。注意:如果字段字符长度固定建议使用char类型,性能更好。理论:前缀N就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Un原创 2021-09-12 10:52:09 · 2774 阅读 · 0 评论 -
merge into 的用法
merge into 的语法如下所示:MERGE INTO [target-table] T USING [source-table sql] S ON([conditional expression] and [...]...)WHEN MATCHEDTHEN [UPDATE sql]WHEN NOT MATCHEDTHEN [INSERT sql]判断源表 S 和目标表 T 是否满足 ON 中的条件,如果满足则用 S 表去更新 T 表,如果不满足,则将 S 表数据插入 T 表中。但是有很多原创 2021-09-10 14:07:22 · 4370 阅读 · 0 评论 -
SQL之EXISTS的理解
将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。先上表过程:外查询Persons表,提取出数据到EXISTS内查询做验证,因为SELECT NULL有返回一行数据,所以所有外查询数据都提取到了。过程:外查询Persons表,提取出数据到EXISTS内查询做验证,因为SELECT 语句没有行数据,所以所有外查询数据都没有验证通过,返回空。示例:查询有订单的人员信息。过程:外查询Person原创 2021-09-04 16:12:24 · 411 阅读 · 0 评论 -
SQL语句JOIN
–人员表 参照SQL官方教程CREATE TABLE [dbo].[Persons]( [Id_P] [varchar](50) NOT NULL, [LastName] [varchar](50) NULL, [FirstName] [varchar](50) NULL, [Address] [varchar](50) NULL, [City] [varchar](50) NULL, CONSTRAINT [PK_Persons] PRIMARY KEY CLUSTERED ( [Id_原创 2021-09-04 15:40:58 · 125 阅读 · 0 评论 -
SQLSERVER数据库事务
--------------------创建账户表---------------------CREATE TABLE BankAccount( ID INT IDENTITY(1,1) PRIMARY KEY, Account INT, Remark NVARCHAR(4000))--------------------增加记录---------------------DECLARE @i int=0;WHILE(@i<1000)BEGININSERT I原创 2021-09-04 14:52:19 · 241 阅读 · 0 评论 -
SQL SERVER中@@TRANCOUNT的使用
转载自:https://www.douban.com/note/514500276/在SqlServer里,嵌套事务的层次是由@@TranCount全局变量反映出来的。每一次Begin Transaction都会引起@@TranCount加1。而每一次Commit Transaction都会使@@TranCount减1,而RollBack Transaction会回滚所有的嵌套事务包括已经提交的事务和未提交的事务,而使@@TranCount置0。例如BEGIN TRAN --@@TRANCO原创 2021-09-04 13:17:40 · 1757 阅读 · 0 评论 -
SQL Server Try Catch使用
ALTER PROCEDURE [cr].[p_test] @p1 int out AS DECLARE @ERROR_NUMBER INT,@ERROR_LINE INT,@ERROR_MESSAGE varchar(200),@ERRORPROCEDURE varchar(200);BEGIN TRY SET NOCOUNT ON; SET @P1=1/0;END TRYBEGIN CATCH SET @ERROR_NUMBER=ERROR_NUMBER();--返回错误号。原创 2021-09-04 11:27:17 · 244 阅读 · 0 评论 -
使用Visual Studio调试SQL Server存储过程
1、打开visual studio,单击“视图”,选择“服务器资源管理器”。2、右键单击“数据连接”,选择“添加连接”3、在弹出的窗口中选择“Microsoft SQL Server”4、连接好数据源之后选择要调试的存储过程右键执行,如果有参数在弹框中填入。5、选择使用调试器执行,F11单步执行。...原创 2021-09-04 08:35:22 · 1926 阅读 · 0 评论 -
SQL Server 2019安装注意事项
SQL Server 2019第一次安装过程有错误提示,部分功能安装失败,提示重启电脑后继续安装。点击安装程序,重新安装,向现有实例中添加功能。SQL Server 2019需要单独安装SSMS(Microsoft SQL Server Management Studio)图形界面管理工具。...原创 2021-08-28 09:23:54 · 418 阅读 · 0 评论