
SQL Server数据库技术
文章平均质量分 64
postfxj
这个作者很懒,什么都没留下…
展开
-
SQLServer的系统数据库用别的服务器上的系统数据库替换后做跨服务器连接时出现凭证、非对称金钥或私密金钥的资料无效
这肯定和数据库的验证有关,这个一定在master数据库在,不知去哪里修改,找了很多资料,终于解决了。ALTER SERVICE MASTER KEY FORCE REGENERATE--这一句解决。下面一行代码解解决:(执行下面语句时也会报一下错,但是上面的问题就解决了)原创 2024-07-08 10:23:53 · 378 阅读 · 0 评论 -
sqlserver在执行维护计划备份时报错,重新设置维护任务,也同样出错,另一计划的异地备份又正常。
sqlserver在执行维护计划备份时报错,重新设置维护任务,也同样出错原创 2024-04-28 09:05:19 · 1144 阅读 · 0 评论 -
sqlserver中一条sql查询语句无限级的展开多级子 bom算法示例
/*思路说明: 1 展开多层次bom就需要用循环的方法展开,sqlserver中2005版本后就有了递归的查询with 2 要让sql查询出来的结果有像树装结构一样的效果,就需要有层级level,如果没有lever就要计算出一个level来,需要用加空格的方式来实现层级样式 3 需要父子关系的要在一起就一定得要按层级的顺序来排序ordby,所以我先对顶层的加一个顺序号,先按顶层的排序; 然后再加上各父子bom的关系建立路径bom_path(一定要父子子父的串在一起.原创 2020-12-21 13:56:10 · 3164 阅读 · 3 评论 -
SQL SERVER 2008 Hierarchyid数据类型解决分层树结构遍历问题
以往我们在关系数据库中建立树状结构的时候,通常使用ID+ParentID来实现两条纪录间的父子关系。但这种方式只能标示其相对位置。解决这类问题在SqlServer2005出现之前通常是采用游标来操作,但熟悉数据库内部机制的人都知道使用游标带来的性能问题和其他问题是比较严重的。到了SqlServer2005下,可以选择用CTE来做递归查询,这种方式查询比较简练,但由于数据库内部是采用递归查询的方式,其效率依旧不高;为了能够实现既简练又高效的查询,通常的做法是增加冗余字段,比如增加一个"Path"字段,查询原创 2020-12-16 15:38:21 · 510 阅读 · 0 评论 -
在slserver中实现就字符串路径和实现树状分层结构
[SQL] HierarchyId - 字符串路径此问题是要利用 HierarchyId 来找出字符串路径,HierarchyId 可以透过 CAST(HierarchyId AS ncarchar(4000)) 直接转成字符串路径(EX:\1\2\3),而此问题是要找出以[名称]为主的字符串路径(EX:公司\课级\组级),在没有现成函数可以使用的前提下,还是只能跑 CTE 来取得。Sample DataUSE TempDBGOIF OBJECT_ID('Demo') IS NOT .原创 2020-12-16 15:09:17 · 218 阅读 · 0 评论 -
sqlserver实现递归查询用例
WITH tree as(SELECT DEP,NAME,UP,LEV=0 -- 定义层级字段,并且设置顶级的值FROM DEPT where dep='00000000' -- 顶级数据条件,查根目录UNION ALLSELECT b.DEP,b.NAME E,B.UP,LEV=tree.LEV+1 -- 递归中每下去一级层级就+1from tree inner join dept b on tree.dep=b.up) SELECT *FROM treeorder by .原创 2020-12-11 15:49:46 · 405 阅读 · 0 评论 -
定义和使用sqlserver游标笔记
declare@V_MRP_NO VARCHAR(100),@V_MRP_NAME VARCHAR(100),@V_SO_NO VARCHAR(60),@V_XT_NO VARCHAR(60)declare my_cur cursor for --定义游标SELECT DISTINCT MRP_NO,MRP_NAME,SO_NO,XT_NOFROM #TF_MLo...原创 2019-12-16 11:08:38 · 215 阅读 · 0 评论 -
sqlserver中多行转成单行的综合总结。多行行分组单列分逗号隔开显示,行列转换等
1 有时需要在动态sql语句中拼接语句,需要行列转换动态化,需要生成横排的栏位.示例如下。declare @sql varchar(400)DECLARE @T1 TABLE(ID INT,SIZE_VALUE VARCHAR(10),SIZENAME VARCHAR(10) )insert into @T1SELECT ID=1,SIZE_VALUE='A001',SIZENA...原创 2019-11-28 11:58:15 · 1173 阅读 · 0 评论 -
sqlserver中跨服务器查询数据
[SQL SERVER] 跨服务器查询 方法一:用OPENDATASOURCE下面是个跨SQLServer查询的示例Select TableA.*,TableB.* From OPENDATASOURCE( 'SQLOLEDB', 'Data Source=ServerA;User ID=UserID;Password=Password'转载 2014-03-17 20:13:00 · 9978 阅读 · 0 评论 -
sqlserver重启的行命令脚本,并且可以产生执行日志,可用于定时重启
重启脚本如下:(可以另存为.bat文件)echo ---------------------------------------------------------------->>SQLREBOOTLOG.txtecho -----开始重启,时间为:%date%%time%---------------->>SQLREBOOTLOG.txtnet stop sqlserverage原创 2017-03-24 15:25:05 · 3077 阅读 · 0 评论 -
SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents)本文所涉及的内容(Contents)背景(Contexts)实现代码(SQL Codes)方法一:使用拼接SQL,静态列字段;方法二:使用拼接SQL,动态列字段;方法三:使用PIVOT关系运算符,静态列字段;方法四:使用PIVOT关系运算符,动态列字段;扩展阅读一:参数化表名、分组列、行转列字段、字段值;扩展阅读二:在前面的基础上加入条件过滤转载 2016-07-13 17:24:29 · 512 阅读 · 0 评论 -
sqlserver事务处理
SqlServer事务回滚(2)SQL Server 2008中SQL应用系列--目录索引SQL事务 一、事务概念 事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、转载 2015-12-26 08:14:22 · 2270 阅读 · 0 评论 -
利用任务计划自动删除指定日期的SQLServer备份文件
利用任务计划自动删除指定日期的SQLServer备份文件命令FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]方法1:描述:可以删除7天以前的后缀名为log的日志文件。如今天是6.29,那么会删除6.22号以前创建的文件。不会删除到回收站。...转载 2019-04-12 14:45:44 · 826 阅读 · 0 评论 -
SQLServer 数据加密解密:常用的加密解密(一)
转转载 2017-12-21 19:56:16 · 6491 阅读 · 1 评论 -
SQL Server中实现汉字首字母和把汉字转成拼音的方法。
1 建表保存拼音、拼音首字母、和汉字的对照表。脚本如下:CREATE TABLE [dbo].[SYS_ChinesePY]( [ID] [int] IDENTITY(1,1) NOT NULL, [PYFIRST] [char](1) NULL, [PYALL] [varchar](50) NULL, [WORD] [nvarchar](1) NULL,...原创 2018-07-25 13:40:32 · 4154 阅读 · 0 评论 -
SQLServer实现快速进行简繁体的翻译功能
1 创建简繁体对照表脚本如下:CREATE TABLE [dbo].[SYS_BGBIG]( [ID] [int] IDENTITY(1,1) NOT NULL, [gb] [nvarchar](1) NULL, [big] [nvarchar](1) NULL, CONSTRAINT [PK_SYS_BGBIG] PRIMARY KEY CLUSTERED ( [ID] ...原创 2018-07-25 14:01:50 · 2441 阅读 · 0 评论 -
SQL Server中如何实现不固定长度字串前缀后固定长度自动补0
实现要求:如 YD01,要变成固定6位长度,YD0001解决思路:1 要求出数字出现的第一个位置PATINDEX('%[0-9]%',FIELD)。2 然后可以取出前缀3 取出数字4 然后用right方法根据字本身长度和固定长度自动补0 SELECT *INTO #TESTFROM (SELECT F1='YDM01'UNIONSELECT F1='YD...原创 2018-08-01 10:54:54 · 3140 阅读 · 0 评论 -
SQL Server中实现子字串在父字串中第N次出现的位置, 方便字串解析
create function fn_find(@find varchar(8000), @str varchar(8000), @n smallint) returns intasbegin if @n < 1 return (0) declare @start smallint, @count smallint, @index smallint, @len s...原创 2018-08-08 13:18:05 · 485 阅读 · 0 评论 -
各种版本sqlserver的清除数据 库日志的方法
1 SQL2005清空删除日志:复制代码 代码如下:Backup Log DNName with no_log'这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了。godump transaction DNName with no_loggoUSE DNNameDBCC SHRINKFILE (2)Go2 SQL2008及以上清空删除...转载 2019-09-16 11:28:44 · 1733 阅读 · 0 评论 -
sqlserver中如何查看被死锁的表和进程
--查看被锁表:select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableNamefrom sys.dm_tran_locks where resource_type='OBJECT'order by tablename--解锁:declare @spid intSet @spid =...原创 2019-10-05 13:44:29 · 3584 阅读 · 0 评论 -
清除SQLServer数据库日志
<br /> 今天把服务器上的论坛数据库附加到本地,附加过程中就觉得不对劲,速度奇慢,附加完一看,日志文件整整占了23G。必须清除掉,不然太占空间了。上网找了个清除日志的方法。我在清除过程中用了第1,2,3,4步骤,顺利将日志文件BBS_log.ldf从23G变为了1M。<br />我执行如下:<br />1.清空日志<br /> DUMP TRANSACTION 库名 WITH NO_LOG <br />2.截断事务日志:<br /> BACKUP LOG 数据库名 WITH NO_LOG原创 2010-11-27 14:24:00 · 865 阅读 · 0 评论 -
sqlserver的最大连接数测试
亲测SQLServer的最大连接数很多做架构设计、程序开发、运维、技术管理的朋友可能或多或少有这样的困惑: SQLServer到底支持多少连接数的并发?SQLServer是否可以满足现有的应用吗?现有的技术架构支持多少连接数的并发?在硬件性能与网络性能足够理想的情况下理论上可以支持多少并发连接?生产环境中的数据库现在的并发量是多少?如何监控现有数据库并发的数量?生产环境中的并发转载 2016-01-18 16:17:07 · 883 阅读 · 0 评论 -
如何在Excel或sqlserver中写用户函数实现数字货币向英文转换集锦
如何创建名为 SpellNumber 的示例函数启动 Microsoft Excel。按 Alt+F11 启动 Visual Basic 编辑器。在“插入”菜单上,单击“模块”。在模块表中键入下面的代码。Option Explicit'Main FunctionFunction SpellNumber(ByVal MyNumber)Dim Dollars, Cents,原创 2015-05-19 15:57:06 · 1662 阅读 · 0 评论 -
SQL Server 2005如何起用"xp_cmdshell"
<br /> xp_cmdshell扩展存储过程将命令字符串作为操作系统命令shell执行,并以文本行的形式返回所有输出。由于xp_cmdshell可以执行任何操作系统命令,所以一旦SQLServer管理员帐号(如sa)被攻破,那么攻击者就可以利用xp_cmdshell在SQLServer中执行操作系统命令,如:创建系统管理员,也就意味着系统的最高权限已在别人的掌控之中。由于存在安全隐患,所以在SQLServer2005中,xp_cmdshell默认是关闭的。<br /><br /> 两种方式启用x原创 2011-01-07 01:03:00 · 750 阅读 · 0 评论 -
sqlserver中各任务所遇到的等待类型解析
<br />--联机帮助<br />下表列出各任务所遇到的等待类型。<br /><br />等待类型 说明 <br />ASYNC_DISKPOOL_LOCK <br /> 当尝试同步并行的线程(执行创建或初始化文件等任务)时出现。<br /> <br />ASYNC_IO_COMPLETION<br /> 当某任务正在等待 I/O 完成时出现。<br /> <br />ASYNC_NETWORK_IO<br /> 当任务被阻止在网络之后时出现在网络写入中。 <br /> <br />BACKUP<原创 2010-12-09 09:25:00 · 4108 阅读 · 0 评论 -
SQL Server各种日期计算方法
SQL Server各种日期计算方法 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。...原创 2010-10-12 16:47:00 · 1372 阅读 · 0 评论 -
添加由 SQLServerAgent 服务执行的新作业語法和解析
添加由 SQLServerAgent 服务执行的新作业。 语法 sp_add_job [ @job_name = ] 'job_name ' [ , [ @enabled = ] enabled ] [ , [ @description = ] 'description ' ] [原创 2010-10-12 13:32:00 · 834 阅读 · 0 评论 -
SQLserver 2005文件和文件组的作用说明
1、文件和文件组的含义与关系 每个数据库有一个主数据文件.和若干个从文件。文件是数据库的物理体现。 文件组可以包括分布在多个逻辑分区的文件,实现负载平衡。文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf 和 Data3.ndf),并将这三个文件指派到文件组 fgroup1 中。然后,可以明确地在文件组 fgroup1 上创建一个表。对表中数据的查询将分散到三个磁盘上,因而性能得以提高。在 RAID(磁盘冗余阵列)条带原创 2010-10-08 07:55:00 · 828 阅读 · 0 评论 -
SQLServer2005新特性
一、企业级数据管理 在当今的互联世界中,数据和管理数据的系统必须始终为用户可用且能够确保安全,有了SQLServer2005,组织内的用户和IT专家将从减少应用程序宕机时间、提高可伸缩性及性能、更紧密的安全控制中获益。SQLServer2005也包括了很多新的和改进的功能来帮助企业的IT团队更有效率的工作。SQLServer2005包括了几个在企业级数据管理中关键的增强: 易管理 可用性 可伸缩性 安全性 1、易管理 SQLServer2005能够更为简单的部署、管理和优化企业数据和分析应用程转载 2010-09-30 11:51:00 · 1505 阅读 · 0 评论 -
SQL SERVER 2005 新增语法
1.表的同义名(Synonyms)为表创建同义名,这样就可以在Select语句里边使用表的同义名了.注意在更改表的定义的时候只能使用表的原名,而不能使用表的同义名.--创建同义名CREATE SYNONYM syn_ORFOR dbo.Orders--使用同义名查询表select * from syn_OR--删除同义名DROP SYNONYM syn_OR2.INTERSECT 操作符INTERSECT操作符就是取表集A和表集B的交集.--查询,Northwind数据库select * from orde转载 2010-09-30 09:29:00 · 699 阅读 · 0 评论 -
sql server 2005中新增加的try catch的用法
sql server 2005中新增加的try catch,可以很容易捕捉异常了,今天大概学习看了下,归纳下要点如下基本用法BEGIN TRY { sql_statement | statement_block }END TRYBEGIN CATCH { sql_statement | statement_block }END CATCH,和普通语言的异常处理用法差不多,但要注意的是,SQL SERVER只捕捉那些不是严重的异常,当比如数据库不能连接等这类异常时,是不能捕捉的一个例转载 2010-09-30 09:07:00 · 1701 阅读 · 1 评论 -
SQL Server 2005 中引入的 xp_cmdshell
SQL Server 2005 中引入的 xp_cmdshell 选项是服务器配置选项,使系统管理员能够控制是否可以在系统上执行 xp_cmdshell 扩展存储过程。 默认情况下,xp_cmdshell 选项在新安装的软件上处于禁用状态,但是可以通过使用外围应用配置器工具或运行 sp_configure 系统存储过程来启用它,如下面的代码示例所示: -- To allow advanced options to be changed. EXEC sp_configure ’show advanced原创 2010-09-28 15:19:00 · 456 阅读 · 0 评论 -
怎样查出SQLServer的性能瓶颈
<br />怎样查出SQLServer的性能瓶颈<br />--王成辉翻译整理,转贴请注明出自微软BI开拓者[url]www.windbi.com[/url]<br />--原帖地址<br />如果你曾经做了很长时间的DBA,那么你会了解到SQLServe的性能调优不是一个精密的科学。即使是,对于为最佳的性能找到最佳的配置也是很困难的。这是因为对于调优来说很少东西是绝对的。例如,一个性能调优可能对某一方面有用,可是却会影响其他的性能。<br />我曾经做过DBA,在最后7年的日子里,我总结了一套SQLSer转载 2011-01-08 15:14:00 · 6643 阅读 · 0 评论 -
利用SQL SERVER2005发送邮件
利用SQL SERVER2005发送邮件 早在sql server 2000中可以通过sql mail给指定的邮件地址发邮件。SQL SERVER 2005中我们仍外可以用sql server2000中的SQLMAIl功能 发送邮件,但SQL SERVER2005中又提供一个新数据库邮件功能也可以发送和接收邮件。这里以数据库邮件为例进行说明。为了安全起见,微软将数据中的一些可能带来安全隐患的一原创 2011-10-22 09:43:00 · 1078 阅读 · 0 评论 -
sqlserver中如何把查询结果自动生成为excel文件
1、将SQL SERVER中查询到的数据导成一个Excel文件-- ======================================================T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:/Temp.xls -c -q -S"servername" -U"sa" -P""'参数:S 是SQ原创 2011-10-22 09:59:38 · 17716 阅读 · 2 评论 -
SQL Server FOR XML PATH 语句的应用
SQL Server FOR XML PATH 语句的应用在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。12345DECLARE @TempTable table(UserIDint , UserName nvarchar(50));insert转载 2015-05-19 08:47:54 · 486 阅读 · 0 评论 -
在SQL Server 2008中配置文件流(FILESTREAM)
在SQL Server 2008中配置文件流(FILESTREAM) SQL Server 2008推出了一个新的特性叫做文件流(FILESTREAM),它使得基于SQL Server的应用程序可以在文件系统中存储非结构化的数据,例如文档、图片、音频、视频等等。文件流主要将SQL Server数据库引擎和新技术文件系统(NTFS)集成在一起;它主要以varbinary(max)数据类转载 2014-10-23 09:01:06 · 1607 阅读 · 0 评论 -
sqlserver中用存储过程创建sql任务(job)
create proc p_createjob@jobname varchar(100),--作业名称@sql varchar(8000),--要执行的命令@dbname sysname='',--默认为当前的数据库名@freqtype varchar(6)='day',--时间周期,month 月,week 周,day 日@fsinterval int=1,--相对于每日的重原创 2014-08-30 09:33:19 · 6104 阅读 · 0 评论 -
LogExplore 使用方法
LogExplore 使用方法:安装后打开log explorer file=>attach log file->选择服务器和登陆方式->connect->选择数据库->attach->左面对话框中browse->view log->就可以看到log 记录,点击“View DDL Commands”里面就有很多drop table 命令点击下面的“undo”按钮是生成表结构的语句(转载 2014-03-17 10:31:40 · 1820 阅读 · 0 评论 -
用sqlserver 实现带英文字母的流水码
--下面函数实现在sqlserver中产生带字母流水号,如ABC增加一个为ABD, ABCD 递增为ABCEcreate function dbo.f_IncIdent(@p_AIdent varchar(36))returns varchar(20)as begin declare @v_cChars varchar(40), @v_J integer,原创 2013-11-11 20:55:51 · 3199 阅读 · 0 评论