
3 SQL SERVER 学习
文章平均质量分 56
sql server
雅冰石
DBA
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sql server怎样用sql profiler捕获带变量值的慢sql
点击上面截图里右下方的‘组织列’,可以调整这些列的顺序。都配置好后,点击‘运行’按钮。原创 2024-11-20 11:57:47 · 801 阅读 · 0 评论 -
sql server查看当前正在执行的sql
统计某类sql执行次数,并按总体cpu消耗时间降序排序。原创 2024-11-19 16:33:37 · 1064 阅读 · 0 评论 -
程序里sendStringParametersAsUnicode=true的配置导致sql server cpu使用率高问题处理
近期生产环境几台sql server从库cpu使用率总是打满,发现抓的带变量值的慢sql,手动代入变量值执行并不慢,秒级返回,不知道问题出在哪里。原创 2024-11-19 12:14:25 · 703 阅读 · 0 评论 -
sql server怎样用扩展事件捕获带变量值的慢sql,并统计最耗cpu的慢sql
用SSMS可以看到每条慢sql的详细记录,但如果sql较多,可以用sql筛选想查的数据,比较灵活。查看下生成的xel文件,手动改下下面的xel文件名。有两种方式可以查询。原创 2024-11-18 15:40:57 · 924 阅读 · 0 评论 -
在sql server 2016 always on集群里新增一个数据库节点
二 操作步骤2.1 在新节点上安装sql server软件略2.2 在新节点上开启‘故障转移群集功能’打开‘服务管理器’:点击‘添加角色和功能’:2.3 修改hosts文件修改集群上现有节点的C:\Windows\System32\drivers\etc\hosts 文件,添加新节点的ip和主机名信息,示例:2.4 把新节点加入现有windows故障转移群集在集群当前主节点上操作:2.5 在新节点上开启always on2.6 将新节点加入到always on集群里。原创 2024-03-16 18:52:59 · 1889 阅读 · 0 评论 -
如何远程连接SQL SERVER
一.设置客户端网络实用工具点击“开始”-“程序”,在“Microsoft SQL Server”菜单中选择“客户端网络实用工具”。 在“别名”选项中点击“添加”。 在“服务器别名”中,填入您网站域名,在“网络库”区域中点击“TCP/IP”,在“连接参数”区域取消“动态决定端口”,指定“端口号”为2433。填转载 2013-07-15 15:40:26 · 1295 阅读 · 0 评论 -
主题数据库
概念将信息经过过滤识别出来,再从全局出发,根据管理需求信息按照不同的分类定义工作,然后分别对每个主题数据库定义主题。主题数据库的设计目的是为了加速应用项目的开发。程序人员使用的数据应已存在于有关数据库中。它把企业的全部数据划分成一些可以管理的单位——主题数据库。主题数据库应设计得尽可能稳定,能在较长时间内为企业的信息资源提供稳定的服务。稳定并非限制主题数据库永不发生变化,而是要求在变化后不转载 2013-07-16 09:27:27 · 2329 阅读 · 0 评论 -
您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”
解决方法: 打开SQL SERVER 2008 工具-->选项-->Designers-->表设计器和数据库设计器,把“阻止保存要求重新创建表的更改”的勾去掉然后点“确定”即可转载 2013-07-16 16:33:46 · 1064 阅读 · 0 评论 -
消息 3902,级别 16,状态 1,第 3 行 COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION。
在SQL SERVER里写简单的插入语句,并提交:insert into emp(empno,ename) values(2,'dan');commit;结果报错:消息 3902,级别 16,状态 1,第 3 行 COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION。出错原因:如果是在ORACLE里这样写是没错的,但是这个SQL SERVER原创 2013-07-16 18:07:34 · 11739 阅读 · 0 评论 -
SQL SERVER里怎样查看表结构
ORACLE里查看表结构是DESC 表名;SQL SERVER里查看表结构:EXEC SP_HELP[表名];例如:USE SUBJECTDB; --指定在哪个数据库下面EXEC SP_HELP [AdminService.AgreementHotel];原创 2013-07-18 11:14:03 · 1667 阅读 · 0 评论 -
SQL SERVER里面架构
引用帮助文档对架构的定义: 从 SQL Server 2005 开始,每个对象都属于一个数据库架构。数据库架构是一个独立于数据库用户的非重复命名空间。您可以将架构视为对象的容器。可以在数据库中创建和更改架构,并且可以授予用户访问架构的权限。任何用户都可以拥有架构,并且架构所有权可以转移。 在SQL Server 2000中架构和用户是没有多大的区别,我们在2000中一般是指所有转载 2013-07-18 11:16:00 · 1181 阅读 · 0 评论 -
SQL SERVER上怎样同时连接到不同的服务器上面
例如,我现在已经连接到了10.0.9.240机器上面的SUBJECTDB库,右下角我用红色标出了,前三项分别表示该窗口连接的IP地址,用户名,数据库名称。我现在想连接10.0.9.243。点击新建查询,点击左上角‘更改连接’按钮(用红色椭圆标出了)。出现连接对话框,输入要连接的服务器名称,登录名,密码即可(我这里连的是10.0.9.243)。连接成功之后,就能看到现在登录的原创 2013-07-18 16:48:51 · 1122 阅读 · 0 评论 -
SQL SERVER里面UNIQUEIDENTIFIER与NEWID函数
uniqueidentifier中文含义“唯一的标识符”。uniqueidentifier数据类型是16个字节的二进制值,应具有唯一性,必须与NEWID()函数配合使用。uniqueidentifier数据类型与identity自增不同,不会为插入的新行自动生成新的ID,新值由NEWID()函数指定。NEWID()函数值会生成全球唯一的标识,标识由网卡号和CPU时钟组成,如:6F961转载 2013-07-23 11:10:54 · 2629 阅读 · 0 评论 -
print没有输出结果
例如下面这个简单的语句:DECLARE @CNNAME NVARCHAR(20);BEGIN PRINT 'HELLO'+@CNNAME;END; 执行完之后,没有任何输出结果。出错原因:@CNNAME没有赋值,是空的,字符串和它一块儿PRINT,没有任何输出结果。解决办法:将变量赋值即可。DECLARE @CNNAME NVARCHAR(20) ;B原创 2013-07-30 15:47:34 · 4977 阅读 · 0 评论 -
ROW_NUMBER() OVER使用
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。示例: xlh row_num转载 2013-08-07 09:19:49 · 949 阅读 · 0 评论 -
SQL SERVER多列子查询
今天,写存储过程时,用到多列子查询,我当时这样写的:USE SUBJECTDB_DATA; BEGIN TRAN; --INSERT INTO SUBJECTDB.ProDefine.Project_Corporation SELECT pro.CODE,COR.CODE FROM BDD_PROJECTINFO_INSERT INS LEFT JO原创 2013-08-02 18:01:04 · 4248 阅读 · 0 评论 -
SQL SERVER中将某字段默认值设置为当前登录名
今天,让添加两个字段创建者,创建日期,创建者默认值设置为当前登录人,创建日期为当前时间。在网上查了一下,当前登录人用SUSER_SNAME.先备份一下表,再添加字段--备份表USE DBA;SELECT * INTO DBA.DBO.SubjectDB_PRODEFINE_ProductInfoExtend_BAK_20130820FROM SubjectDB.PRODEF原创 2013-08-20 14:04:18 · 1877 阅读 · 0 评论 -
SQL Server 2008 中如何设置用户对表中列的权限
在 SQL Server 2008 中整个界面都较之前有较大变化,有时候找到了表权限,都不知道如何细化设置。在表上右键,选择“属性”,在弹出对话框中选择“权限”,如下图:然后选择“搜索”,搜索到要设定权限的用户,再在下面选择相应的权限,此时“列权限”按钮可点,再选择“列权限”即可。转载 2013-08-20 15:26:09 · 5290 阅读 · 3 评论 -
通用表表达式
开发人员正在研发的许多项目都涉及编写由基本的 SELECT/FROM/WHERE 类型的语句派生而来的复杂 SQL 语句。其中一种情形是需要编写在 FROM 子句内使用派生表(也称为内联视图)的 Transact-SQL (T-SQL) 查询。这一常规使开发人员能获取一个行集,并立即将该行集加入到 SELECT 语句中的其他表、视图和用户定义函数中。另一种方案是使用视图而不是派生表。这两种方案都有转载 2013-08-20 17:55:22 · 1395 阅读 · 0 评论 -
SQL SERVER FLOOR(),CEILING()函数
floor(x),有时候也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分),例如:x=3.14,floor(x)=3y=9.99999,floor(y)=9CEILING函数用于返回大于或等于指定表达式的最小整数。语法:CEILING ( numeric_expressio转载 2013-08-24 20:03:22 · 7356 阅读 · 0 评论 -
COALESCE函数
COALESCE函数会依次检查输入的参数,返回第一个不是NULL的参数,只有当传入COALESCE函数的所有的参数都是NULL的时候,函数才会返回NULL。例如, COALESCE(piName,''),如果变量piName为NULL,那么函数会返回'',否则就会返回piName本身的值。由于这个函数是返回第一个非空的值,所以参数里面必须最少有一个非空的值,如果使用下面的查询,SELE原创 2013-08-25 12:15:11 · 5662 阅读 · 0 评论 -
SQL SERVER里面怎样改列名
ORACLE里面改列名: ALTER TABLE 表名 RENAME COLUMN1 TO COLUMN2;SQL SERVER里面改列名: EXEC SP_RENAME '表名.旧列名','新列名','COLUMN' 例子:原创 2013-08-13 11:35:09 · 1675 阅读 · 0 评论 -
sp_configure
sp_configure (Transact-SQL)SQL Server 2012其他版本3(共 3)对本文的评价是有帮助 - 评价此主题显示或更改当前服务器的全局配置设置。 Transact-SQL 语法约定语法转载 2013-08-26 21:44:44 · 8951 阅读 · 0 评论 -
服务器配置选项
您可以使用 SQL Server Management Studio 或 sp_configure 系统存储过程通过配置选项来管理和优化 SQL Server 资源。 大多数常用的服务器配置选项可以通过 SQL Server Management Studio 来使用;而所有配置选项都可通过 sp_configure 进行访问。 在设置这些选项之前应该认真考虑这些选项对系统的影响。 有关详细信息,转载 2013-08-26 21:41:55 · 1449 阅读 · 0 评论 -
快照复制
快照复制就是在某一时刻对出版数据进行一次“照相”,生成一个描述出版数据库中数据瞬时状态的静态文件,最后在规定时间将其复制到订购者数据库。特点:快照复制并不像事务复制那样要不断地监视、跟踪在出版数据库中发生的数据变化,它所复制的内容不是 INSERT、 UPDATE、 DELETE 语句(事务复制的特征),也不是仅限于那些被修改数据(合并复制的特征)。它实际上是对订购数据库进行一转载 2013-08-27 19:40:26 · 997 阅读 · 0 评论 -
SQL Server 的恢复和备份模式
事务日志每一个SQL Server数据库在硬盘上包含至少两个物理文件,一个MDF文件和一个LDF文件。MDF文件包含所有被存储的实际数据。LDF文件或日志文件,包含了每一个数据变化的纪录。记录每个数据变化使撤销操作和“时间点”备份成为可能。一个时间点的备份使我们能够恢复我们希望的任何时间点的数据库,昨天,两个小时前,两分钟前。默认情况下,MDF和LDF文件位于硬盘上SQL Server下的转载 2013-08-27 23:27:30 · 1104 阅读 · 0 评论 -
SQL SERVER中的CHECKPOINT
在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中。其实在我们进行insert, update, delete时,数据并没有直接写入数据库对应的mdf文件中,而是写入了缓存里,这有点像电驴,因为过于频繁的写入会使磁盘的寿命大大减小。 从上图可以直观的看出。只有当发生checkpoint时,数据才会被写入mdf数据转载 2013-08-27 23:36:14 · 1314 阅读 · 0 评论 -
SQL SERVER三种恢复模型
在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模型: Simple(简单), full(完整), bulk-logged(批量日志)。 下面这条语句可以显示出所有在线数据库的恢复模型:SELECT name, (SELECT DATABASEPROPERTYEX(name, 'RECOVERY')) RecoveryModel FROM master..转载 2013-08-27 23:46:38 · 6335 阅读 · 0 评论 -
SQL SERVER怎样转义单引号
默认情况下, '是字符串的边界符, 如果在字符串中包含', 则必须使用两个', 第1个'就是转义符例子:select * from tbl where uyear='''06'上例中 uyear 的实际条件值为 '06,而不是 ''06(一共有四个单引号,第一个跟第四个是为了引住字符串,第二个是转义符,第三个是被转义的)如表A有name字段,想修改该字段的某个值为【O'neal原创 2013-08-29 14:07:34 · 16210 阅读 · 0 评论 -
SQLSERVER的数据页
每一行数据在数据页面里是怎麽存放的?结构组成:每个SQLSERVER的数据页面大致分成3个部分:页头,页尾偏移量,数据存储 这3个部分假设现在有一个表,表的结构是:CREATE TABLE test( a INT, b INT) 他在1:100这个页面上存储数据(1是数据库的数据文件ID 亦即是FILEID,100 是PAGEI转载 2013-08-29 15:09:14 · 1987 阅读 · 0 评论 -
SQL SERVER中的事务日志
简介 SQL Server中的事务日志无疑是SQL Server中最重要的部分之一。因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback)。从而还部分确保了事务的ACID属性.在SQL Server崩溃时,DBA还可以通过事务日志将数据恢复到指定的时间点。当SQL Server运转良好时,多了解一些事务日志的原理和概念显得并不是那么转载 2013-08-29 15:42:54 · 913 阅读 · 0 评论 -
SQL SERVER中事务日志在修改数据时的角色
简介 每一个SQL Server的数据库都会按照其修改数据(insert,update,delete)的顺序将对应的日志记录到日志文件.SQL Server使用了Write-Ahead logging技术来保证了事务日志的原子性和持久性.而这项技术不仅仅保证了ACID中的原子性(A)和持久性(D),还大大减少了IO操作,把对数据的修改提交到磁盘的工作交给lazy-writer和che转载 2013-08-29 16:08:35 · 890 阅读 · 0 评论 -
仅复制备份 (SQL Server)
“仅复制备份”是独立于常规 SQL Server 备份序列的 SQL Server 备份。 通常,进行备份会更改数据库并影响其后备份的还原方式。 但是,有时在不影响数据库总体备份和还原过程的情况下,为特殊目的而进行备份还是有用的。 仅复制备份就是用于此目的。仅复制备份的类型如下所示:仅复制完整备份(所有恢复模式)仅复制备份不能用作差异基准或差异备份,并且不影响差异基转载 2013-08-31 19:56:31 · 6143 阅读 · 0 评论 -
事务日志(SQL SERVER)
每个 SQL Server 数据库都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改。 必须定期截断事务日志以避免它被填满。 但是,一些因素可能延迟日志截断,因此监视日志大小很重要。 某些操作可以最小日志量进行记录以减少其对事务日志大小的影响。事务日志是数据库的重要组件,如果系统出现故障,则可能需要使用事务日志将数据库恢复到一致状态。 删除或移动事务日志以前,必须完全了解此操作转载 2013-08-31 20:40:30 · 1434 阅读 · 0 评论 -
Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L及由于排序规则不同导致查询结果为空的问题
今天写SQL语句的时候,报错。语句: SELECT ins.项目名称 FROM BDD_PROJECTINFO_SHIYAN_INSERT INSWHERE NOT EXISTS (SELECT * FROM SubjectDB.ProDefine.ProjectInfo PRO INNER JOIN SUBJECTDB.Common.City CITY原创 2013-08-30 15:56:06 · 9829 阅读 · 0 评论 -
SQL SERVER操作命令集锦
QL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice转载 2013-09-08 18:30:52 · 1052 阅读 · 0 评论 -
在SQL SErver中实现数组功能
本文摘自肖桂东编著的《SQL Server 疑难解析》问题描述: 我需要向一个存储过程传递数组类型的参数,可是Transact-SQL里面没有数组类型,请问应该怎样实现数组的功能?问题分析: SQL Server并没有数组类型,ANSI SQL-92标准中并没有任何有关数组方面的定义。要实现其他高级语言中的数组的功能,我们必须使用一些特殊的处理方法,其中包括翻译 2013-09-08 21:03:13 · 2920 阅读 · 0 评论 -
SQL SERVER中SQL中游标嵌套循环的示例
SQL中经常要用到循环,下面就将为您介绍SQL中游标嵌套循环的示例,供您参考,希望对您学习SQL的循环有所帮助。create table #temp(a int,b int)insert into #tempselect 1,2 insert into #tempselect 3,4 select * from #tempdeclare @i int,转载 2013-09-08 02:08:17 · 3273 阅读 · 0 评论 -
EXCEL里将整列改为文本格式
有时,导EXCEL到数据库里时,原本电话号码为1333333333格式的,最后,却成了类似于下面的格式:1E+09解决办法:导入之前改变一下EXCEL里数据的格式,可以在电话号码之前加个‘,这样就变成了类似这样的格式:这样,就变成了文本格式。如果一个个得加',就太慢了,所以可以将整列改为文本格式。选中整列,点’数据‘,’分列',原创 2013-09-09 13:35:10 · 4199 阅读 · 0 评论 -
怎样返回每个组的第一行数据
依据namec,medicinemodel,outlookc,memo2分组,按照BidPrice排序,需获取每个分组的第一行,sql语句要怎么写?DB2/ORACLE/ SQL SERVER 2005以上select * from (SELECT namec, medicinemodel,outlookc,memo2, row_number() over(partition by nam转载 2013-09-13 10:12:18 · 1522 阅读 · 0 评论