sql server
Johnson
默默学习,默默耕耘!
展开
-
如何将SQL Server数据表中的数据按条件批量导出为多个Excel文件
昨天,某位大大提了个要求,需要将某个有数十万行数据的表按类别导出为xls文件,每个类别一个xls。将数据表中的数据导出并保存为xls简单,用SSIS或者查询出来之后另存为都可以。但是,这个表中的分类有数百个,如果一个个用SSIS或者查询另存为的话,工作量巨大。前思后想,想到了用while循环查询,并用bcp导出的方法。下面是相关代码: --声明需要的变量declare @sql varc原创 2011-08-24 11:17:00 · 10975 阅读 · 9 评论 -
如何通过SQL语句修改系统日期和时间
首先需要开启SQL Server的cmdshell组件.然后修改日期 exec xp_cmdshell 'date 2000-10-18' 日期格式需要与服务器设置一致,可通过xp_cmdshell 'date' 查看修改时间 exec xp_cmdshell 'time 10:18:23.00' 时间格式需要与服务器设置一致,可通过xp_cmds原创 2008-09-04 14:24:00 · 13730 阅读 · 0 评论 -
SQLNCLI" 无法启动分布式事务"问题的解决思路
一、 问题现象在执行分布式事务时,在sql server 2005下收到如下错误:消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。在sql server 2000下收到如下错误:该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB转载 2009-01-01 00:48:00 · 6456 阅读 · 2 评论 -
获取中文拼音首字母的SQL函数
create function [dbo].[f_GetPY](@str nvarchar(4000))returns nvarchar(4000)asbegindeclare @word nchar(1),@PY nvarchar(4000)set @PY=''while len(@str)>0beginset @word=left(@str,1)--如果非汉字字符,返回原字符转载 2013-06-26 13:32:38 · 1157 阅读 · 0 评论 -
获取中文全拼音的SQL函数
CREATE function [dbo].[f_GetPinyin](@words nvarchar(2000)) returns varchar(8000) as begin declare @word nchar(1) declare @pinyin varchar(8000) declare @i int declare @words_len int declare @un转载 2013-06-26 13:29:57 · 1072 阅读 · 0 评论 -
在SQL Server的try...catch语句中获取错误消息的代码
BEGIN TRY ... ...END TRYBEGIN CATCH DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(原创 2013-07-01 10:51:31 · 1770 阅读 · 0 评论 -
管理SQL Server数据库服务器的安全防范原则
在现实的世界中,我们不可能为每一个可能的威胁做好准备,我们只能增强自身的防护,让恶意用户更难威胁到我们的安全。SQL Server也一样,我们必须遵循一些基本的原则来保证和提高服务器的安全级别,让恶意用户更难访问到数据。下面是个人根据实践经验总结的一些原则:1.物理安全我们要尽量把服务器放置在物理安全性高的地方,至少具有防盗、防破坏、不可随意接近、不可随意实地访问等特点。(本人就曾遇到原创 2013-07-25 12:14:24 · 2189 阅读 · 0 评论 -
什么是透明数据加密(TDE)?
TDE是SQL Server 2008推出的一个新特性透明数据加密(Transparent Data Encryption),简称TDE,是SQL Server 2008推出的一个新特性,用来对整个数据库提供保护。数据库开启TDE加密后,对于连接到所选数据库的应用程序来说是完全透明的,它不需要对现有应用程序做任何改变。因为TDE的加密特性是应用于页面级别的,一旦开启,页面就会在它们写到磁盘之前原创 2013-07-26 11:32:46 · 8168 阅读 · 0 评论 -
何时可以开启透明数据加密(TDE)?
TDE可以为我们的数据库提供加密保护,但是,不是任何情况下都可以随意开启TDE的,同时开启TDE后,我们的数据库维护管理工作也需要进行一些调整。下面我们就先看看开启TDE需要的条件吧!无法正常开启TDE的情况只有一种,那就是数据库中有只读文件组。一般,我们查询sys.dm_database_encryption_keys可以得到DEK的状态,encryption_state为1原创 2013-07-26 14:54:09 · 1299 阅读 · 0 评论 -
在SQL Server中使用命令调用SSIS包
在SQL Server中可以使用dtexec命令运行SSIS包(2005以上版本),当然也可以通过系统过程:xp_cmdshell调用dtexec运行SSIS包。具体操作步骤如下:1.首先,当然是要在Business Intelligence中设计好包,并调试通过。2.然后,有两种方式可以在SQL Server中使用命令运行SSIS包第一种是直接执行ssis包文件,命令如: exe原创 2013-09-22 15:12:43 · 3528 阅读 · 0 评论 -
SQL Server存储过程加密与安全上下文
本文由http://blog.csdn.net/yongsheng0550转载,原文出处:http://www.cnblogs.com/downmoon/archive/2011/02/28/1966662.html本文介绍了SQL Server 2008存储过程加密与安全上下文的相关内容,使用存储过程而不是直接访问基表,可以提供更好的安全性。存储过程加密 其转载 2014-03-14 12:32:08 · 898 阅读 · 0 评论 -
SQL Server 2008内存及I/O性能监控
本文由http://blog.csdn.net/yongsheng0550转自http://tech.it168.com/a2011/0221/1158/000001158998_all.shtml内存相关概念 以下均是针对Window 32位系统环境下,64位的不在下面描述情况下。 用户模式和内核模式(user mode& kernel mode)转载 2014-03-14 12:54:46 · 1188 阅读 · 0 评论 -
SQL Server DBA工作内容详解
本文由http://blog.csdn.net/yongsheng0550转载,原文出处:http://www.mysqlops.com/2011/11/03/sql-server-dba.html在Microsoft SQL Server 2008系统中,数据库管理员(Database Administration,简称为DBA)是最重要的角色。DBA的工作目标就是确保Microso转载 2014-03-14 12:25:29 · 869 阅读 · 0 评论 -
SQL Server将数据库的用户名映射到登录名
SQL Server将数据库的用户名映射到登录名 将数据库服务器上的数据库文件拷贝到另外一台机器上,附加后,新建登录名时无法将原数据库用户映射到此登录名。这样用新建的登录名访问数据库时,必须要以“架构名.对象名”的形式才可以。通过以下方式可以解决该问题: 步骤1: exec sp_change_users_login 'REPORT' 列出当前数据库的孤立用户转载 2009-03-13 14:23:00 · 2029 阅读 · 0 评论 -
认识优化查询中的Merge Join、Nested Loops和Hash Match
1.基本概念: Merge Join([排序]合并联接)、Nested Loops(嵌套循环联接)、Hash Match都是物理运算符。 Merge Join常执行Inner Join(内部联接)、Left Outer Join(左外部联接)、Left Semi Join(左半部联接)、Left Anti Semi Join(左反半部联接)、Right Outer Joi原创 2010-04-05 17:51:00 · 24660 阅读 · 1 评论 -
彻底删除SQL Server 2005上的异常维护计划
SQL Server 2005上的维护计划有时会因为迁移或者改机器名等原因出现异常且不能直接删除掉。 这时候就要去msdb数据库中将对应表的相关数据删除。删除步骤:1.删除维护计划日志中的对应记录2.删除维护计划子计划对应的记录3.删除作业调度对应的记录4.删除维护计划作业对应的记录5.删除维护计划对应的记录 对应脚本如下: use msdbGO原创 2010-08-13 17:10:00 · 1587 阅读 · 0 评论 -
SQL Server性能监控
对象指标名称指标定义指标范围指标单位解决方案SQL Server:Access Methods (SQL Server访问方法)Full Scans/sec (全表扫描/秒)指每秒全表扫描的数量。全表扫描可以是基本表扫描或全索引扫描。由于全表扫描需要耗费大量时间,因此全表扫描的频率过高的话,会影响性能。次数/秒如果该指标的值比2高,应原创 2011-07-08 13:51:28 · 3296 阅读 · 1 评论 -
使用视图和存储过程的优缺点
使用视图和存储过程的优缺点 --以下内容整理自网络视图的优点: 简单性 视图不仅可以简化用户对数据的理解,也可以简化他们的操作,哪些经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。 安全性 隐藏数据源,通过视图用户只能查询和修改他们所能见到的数据,数据库中的其它数据则看不见也取不到。 逻辑数据转载 2010-10-19 17:00:00 · 7566 阅读 · 0 评论 -
SQL Server子系统加载失败(The xx subsystem failed to load)错误的处理
昨天将一台服务器上的数据库全部迁移到了另一台机器,所有作业什么的也都迁移了过去。今天检查发现,数据库的状态和数据等等都正常,但是SQL Server Agent中的作业几乎都报错了。错误类型相似,有:"The SSIS subsystem failed to load.","The SnapShot subsystem failed to load.","The Distribution原创 2010-08-13 14:55:00 · 2979 阅读 · 0 评论 -
移动tempdb磁盘位置的方法
--------本文相关内容收集于CSDN论坛 将tempdb从其在磁盘上的当前位置移动到其他磁盘位置。由于每次启动 MSSQLSERVER 服务时都会重新创建 tempdb,因此不需要从物理意义上移动数据和日志文件。具体方法如下:1 确定 tempdb 数据库的逻辑文件名称以及在磁盘上的当前位置。SELECT name, physical_nameFROM sys转载 2010-07-22 16:34:00 · 1339 阅读 · 0 评论 -
SQL Server服务器名称与默认实例名不一致的修复方法
原因分析: SERVERPROPERTY 函数的 ServerName 属性与@@SERVERNAME 返回相似的信息。ServerName 属性提供Windows 服务器和实例名称,两者共同构成唯一的服务器实例;@@SERVERNAME 提供当前配置的本地服务器名称。 如果安装时未更改默认服务器名称,则 ServerName 属性和 @@SERVERNAME 返回相同的信息。如果原创 2010-03-04 13:50:00 · 3382 阅读 · 2 评论 -
完全卸载SQL Server 2005
SQL Server 2005的卸载是一个非常头疼的问题。我曾经尝试过直接使用【添加或删除程序】工具卸载、清除安装目录、删除注册表内容等等各种方式综合卸载,勉强成功。现在终于找到了一个事半功倍的方法,多次尝试,未有失败,具体如下:1.下载卸载工具,有两种: 第一种是微软官方提供的工具(msicuu2.exe)http://support.microsoft.com/default.原创 2009-07-31 11:32:00 · 17734 阅读 · 4 评论 -
通过SQL Server操作MySQL的步骤和方法
在多种数据库环境下,经常会遇见在不同数据库之间转换数据和互相进行操作的情况。以下简要介绍下用SQL Server操作MySQL的步骤和方法。1 操作前的准备1.1 安装MySQL驱动想要在SQL Server中操作MySQL,首先要在SQL Server所在的服务器上安装MySQL的驱动。MySQL的驱动安装包在MySQL的官网上可以下载到,我下载到的安装包名为:mysql-conne原创 2011-07-11 17:44:55 · 6857 阅读 · 0 评论 -
将系统监视器数据记录到 SQL Server
在 Windows Server 2003 中,可将数据直接记录到 Microsoft SQL Server 数据库中。步骤如下:1.在客户机上创建数据源名称 (DSN) 单击开始,单击控制面板,然后双击管理工具。 双击数据源 (ODBC),单击系统 DSN 选项卡,然后单击添加。 双击 SQL Server,为该 DSN 键入名称,然后为该 DSN 键入说明。 单击数据库原创 2011-07-08 13:54:20 · 874 阅读 · 0 评论 -
SQL Server数据库镜像配置步骤
一、使用证书实现主备SQL Server实例的互通1.在主机和备机上分别创建证书在主机上执行如下语句:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'abcdefg';CREATE CERTIFICATE CERT_HOST_A WITH SUBJECT = 'HOST_A certificate' , STAR原创 2010-02-01 17:17:00 · 1497 阅读 · 0 评论 -
如何使用SQL Server 2005的cmd_shell组件
SQL Server中的cmd_shell组件功能强大,几乎可通过该组建实现Windows系统的所有功能,正因此,这个组件也是SQL Server的最大安全隐患。SQL Server 2000中这个组件是默认开启的,而SQL Server 2005中这个组件默认作为此服务器安全配置的一部分而被关闭。有时我们需要用到该组件,开启此组件的相关语句如下: --To allow advanced原创 2008-09-04 11:28:00 · 2685 阅读 · 0 评论 -
SQL Server 临时禁用和启用所有外键约束
SQL Server 临时禁用和启用所有外键约束(转)--获得禁用所有外键约束的语句select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' from sysobjects a ,sysobjects b where a.xtype ='f' and a.pare转载 2011-01-21 11:49:00 · 1877 阅读 · 1 评论 -
使用SQL Server系统存储过程遍列数据库和数据库表
SQL Server中有两个系统存储过程,可以用来遍列数据库和数据库表,分别是SP_MSForEachDB和SP_MSForEachTable. 如要列出所有数据库文件的信息,可使用如下语句: DECLARE @SQL varchar(1000)SET @SQL='Use [' + '?' + ']SELECT @@servername as ServerName,原创 2010-09-29 16:24:00 · 824 阅读 · 0 评论 -
在Linux系统上安装SQL Server客户端记
在一些情况下,运行在Linux上的服务需要访问SQL Server数据库;而在一些特殊情况下,我们需要快速确认访问SQL Server数据库是否有异常。比如我遇到的这种情况,一个java服务在其他机器上可以正常运行,而在某台Linux机器上就运行不起来,同时,已确认这台机器可以正常访问SQL Server服务器的IP和端口。当然,这种情况下有很多解决办法,比如我可以专门写个java的程序或者pyt...原创 2019-09-20 11:08:47 · 3120 阅读 · 3 评论