SQL
文章平均质量分 81
xushichang
这个作者很懒,什么都没留下…
展开
-
还原数据库,SQL数据库用户只有“名称”而无“登陆名”
SQL数据库用户只有“名称”而无“登陆名”解决来源:exec sp_change_users_login UPDATE_ONE, 没有登陆名的数据库用户,新的登陆名 go 原因: SQL备份的问题有一台SQL SERVER 服务器,将其中的数据库DataBase1备份成一个文件,在另外一台SQL SERVER服务器上还原,数据表和存储过程等恢复没有问题,但某些用户自定义的用原创 2009-07-26 00:20:00 · 1054 阅读 · 0 评论 -
总结 一些 SQL Server 中的时间算法
<br />DECLARE@Date DATETIME<br />SET@Date=GETDATE()<br />--前一天,给定日期的前一天<br />SELECTDATEADD(DAY,-1,@Date) AS'前一天'<br />--后一天,给定日期的后一天 <br />SELECTDATEADD(DAY,1,@Date) AS'后一天'<br />GO<br /><br /><br />--月初,计算给定日期所在月的第一天<br />--这个计算的技巧是先计算当前日期到“1900-01-01”的时转载 2010-07-29 13:49:00 · 698 阅读 · 0 评论 -
SQL中获取字符串中的字母,数字,非数字函数
<br /> <br />--sql获取字母:<br />CREATEFUNCTION dbo.F_Get_STR (@S VARCHAR(100))<br />RETURNSVARCHAR(100)<br />AS<br />BEGIN<br /> WHILEPATINDEX('%[^a-z]%',@S)>0<br /> BEGIN<br /> set @s=stuff(@s,patindex('%[^a-z]%',@s),1,'')<br />原创 2010-06-11 10:48:00 · 1360 阅读 · 0 评论 -
sql递归查询问题
sql递归查询问题在工作中遇到一个问题,是需要sql递归查询的.不懂,于是到csdn上去问,那里的效率真是非常高,我以前也没在上面问过问题.问题描述:我有一个表结构如下:<br />id upperid<br />1 2<br />3 2<br />4 1<br />5 3具体层次不知道,我想用递归sql语句把所有属于某个upperid的数据,包括它的子树,都读出去,请问应该子怎么写? <br />比如说 upperid =2<br />那么先找到1,3,然后再由1原创 2010-09-03 13:48:00 · 1018 阅读 · 0 评论 -
SQL 语句递归查询 With AS 查找 所有 子节点
<br />createtable #EnterPrise<br />(<br /> Department nvarchar(50),--部门名称<br /> ParentDept nvarchar(50),--上级部门<br /> DepartManage nvarchar(30)--部门经理<br />)<br />insertinto #EnterPrise select'技术部','总经办','Tom'<br />insertinto #EnterPrise select'商务部','总经办'原创 2010-09-02 17:58:00 · 5731 阅读 · 0 评论 -
SQL中使用WITH AS提高性能 简化嵌套SQL(转载)
<br />一.WITH AS的含义 <br /> WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 <br />特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如原创 2010-09-02 18:07:00 · 980 阅读 · 0 评论 -
sql server2005安全管理之用户、角色、架构 与 权限
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:--添加只允许访问指定表的用户:exec sp_addlogin '用户名','密码','默认数据库名'--添加到数据库exec sp_grantdbaccess '用户名'--分配整表权限GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]--分配权限到具体的列GRANT SELECT , UPDATE ON table1(i原创 2011-04-29 09:46:00 · 1258 阅读 · 0 评论 -
查看数据库死锁的进程及清除sleeping进程(Kill__Sleeping_Processes)
例28.49 查看数据库死锁的进程(proc_who_lock)用proc_ find _lock过程查看数据库死锁的进程。if exists (SELECT * FROM dbo.sysobjects WHERE i原创 2011-08-21 16:05:52 · 11380 阅读 · 0 评论 -
SQL各种日期转换代码大全
select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',原创 2011-09-19 16:29:03 · 565 阅读 · 0 评论 -
SQL截取字符串
SUBSTRING 返回字符、binary、text 或 image 抒发式的一全体。无关可与当函数一伏运用的无效 Microsoft® SQL Server™ 数据种型的更多疑息,请参睹数据种型。语法 SUBSTRING ( expressi原创 2011-08-24 18:28:01 · 1570 阅读 · 0 评论 -
sqlserver链接服务器使用方法
EXEC sp_addlinkedsrvlogin @rmtsrvname = serverontest, @useself = false, @locallogin = sa, @rmtuser = sa, @rmtpassword = passwordofsa添加登录方式以上两个语句中,@server为服务器的别名,@datasrc为要链接的目标数据库的连接串,原创 2009-09-04 10:58:00 · 2062 阅读 · 0 评论 -
SQL Server 2008删除或压缩数据库日志的方法
适用于SQL 2005 DUMP TRANSACTION [数据库名] WITH NO_LOG BACKUP LOG [数据库名] WITH NO_LOG DBCC SHRINKDATABASE([数据库名]) SHRINKDATABASE 说明:收缩指定数据库中的数据文件大小。 适用于SQL Server 2008的方法USE [m原创 2011-11-14 17:21:30 · 2708 阅读 · 0 评论 -
EXISTS 代替 in ,not EXISTS 代替 not in
表 A :ID ,Name B:ID,B_Name SELECT Name FROM A WHERE A.ID NOT IN (SELECT ID FROM B)改成SELECT Name FROM A WHERE not EXISTS (SELECT ID FROM B WHERE A.ID = B.ID) SELECt * FROM HR_Qustion原创 2009-08-05 17:24:00 · 696 阅读 · 0 评论 -
用于TOP 取最新商品价格、或是 明细的最后一条记录
列1 select spdm,spmc,dwmc,bzsj ,bzsj as Fprice,round(isnull(bzsj,0)*0.23,6) as FindustryPricefrom (select v1.SPDM,v1.SPMC,v1.DWMC,(case when V2.tzsj>0 then V2.tzsj else v1.BZSJ end) AS BZS原创 2012-02-14 17:56:39 · 1225 阅读 · 0 评论 -
SQL Server 中解决保存维护计划提示:no description found
现象:在SQL Server 中保存维护计划时,会提示 no description found 错误。 解决:在运行中注册下面的两个dllRegsvr32 msxml3.dllRegsvr32 msxml6.dll 背景:Win2003 + SQL Server 2005(SP1~SP3)上出现转载 2012-02-15 18:27:39 · 2052 阅读 · 0 评论 -
"Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序冲突
sql2005 无法解决 equal to 操作"Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序 错误代码:SELECT * FROM SJCCBZ, Order_Motor WHERE SJCCBZ.OrderID=Order_Motor.OrderID and SJCCBZ.OrderID='1'AND Order_Motor.M_St原创 2012-03-09 14:18:17 · 13314 阅读 · 0 评论 -
SQL Sever和Oracle取分类前N条记录方法汇总
效率最快:此方法Oracle和SQL Server2005通用。select id,name,class,date from(select id,name,class,date ,row_number() over(partition by class order by date desc)as rowindex from table1)awhere rowindex其中转载 2012-05-17 17:59:09 · 2453 阅读 · 0 评论 -
将小写金额转换为中文大写
CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,2)) <br /> RETURNS varchar(100) WITH ENCRYPTION <br /> AS <br /> BEGIN <br /> --版权所有:csli888 <br /> DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VAR原创 2010-07-24 15:10:00 · 708 阅读 · 0 评论 -
修改数据库的服务器名称
1.使用select @@ServerName可以看到当前数据库的服务器名 2.从Sys.SysServers表中可以看到当前的所有服务器名 3.使用 sp_dropserver servername 将这个服务器名删除。 4.使用 sp_addserver new servername,LOCAL将本地服务器重新添加到服务器表中 5.查询Sys.SysServers表,核对是否已更改原创 2010-05-26 17:42:00 · 904 阅读 · 0 评论 -
SQL split函数
<br />create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))<br />returns @temp table(a varchar(100))<br />--实现split功能 的函数<br />--date :2003-10-14<br />as <br />begin<br /> declare @i int<br /> set @SourceSql=rtrim(ltrim(@Source转载 2010-07-02 17:04:00 · 1744 阅读 · 0 评论 -
数据库2005 SQL 语句分页
#region 数据库2005 SQL 语句分页 /// /// 传入页号,运行指定页号的SQL语句,返回相应的数据集 /// /// 页号 public DataSet GetDataSetByPageIndex(Int32 pageIndex, string TableName, string TableQu原创 2009-05-15 17:55:00 · 538 阅读 · 0 评论 -
SQL中使用WITH AS提高性能
1. 案例起因 公司门店应用程序每天都要出一份报表,用来统计所有商品当天的期初库存数量、入库数量、出库数量 及当天的期末库存数量。运行半年以后,这份报表运行越来越慢,到现在,每次运行该报表显示当天数据时需要近20秒的时间。于是开发人员找到我,希望我看看,是不是可以使该报表运行的时间更短。 该报表就是一段SQL语句,主要由三部分组成,第一部分是计算每个商品的期转载 2009-05-16 10:39:00 · 433 阅读 · 0 评论 -
清理sql2005事务日志
DUMP TRANSACTION [数据库名] WITH NO_LOG BACKUP LOG [数据库名] WITH NO_LOG DBCC SHRINKDATABASE([数据库名]) SHRINKDATABASE 说明:收缩指定数据库中的数据文件大小。 语法: DBCC SHRINKDATABASE ( database_name [原创 2009-05-15 10:17:00 · 772 阅读 · 0 评论 -
据库中使用自增量字段与Guid字段主键的性能对比
2.简介: 1.自增量字段 自增量字段每次都会按顺序递增,可以保证在一个表里的主键不重复。除非超出了自增字段类型的最大值并从头递增,但这几乎不可能。使用自增量字段来做主键是非常简单的,一般只需在建表时声明自增属性即可。 自增量的值都是需要在系统中维护一个全局的数据值,每次插入数据时即对此次值进行增量取值。当在当量产生唯一标识的并发环境中,每次的增量取值都必转载 2009-07-29 14:34:00 · 798 阅读 · 0 评论 -
理解newid()和newsequentialid()
1.:newsequentialid 函数比起 newid 函数最大的好处是:如果你在一个 UNIQUEIDENTIFIER 字段上建立索引,使用 newid 产生的新的值是不固定的,所以新的值导致索引B+树的变化是随机的。而 newsequentialid 产生的新的值是有规律的,则索引B+树的变化是有规律的。有规律和无规律就会带来性能的改进。 2:UNIQUEIDENTIFIER做主键转载 2009-07-29 15:47:00 · 10488 阅读 · 0 评论 -
SQL Like 通配符
SQL 通配符在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符:通配符描述%替代一个或多个字符_仅替代一个字符[charlist]字符列中的任何单一字符[^charlist]或者[!charlist]原创 2009-08-01 10:23:00 · 35335 阅读 · 1 评论 -
timestamp 时间戳 处理程序并发
说明:公开数据库中自动生成的唯一二进制数字的数据类型。timestamp 通常用作给表行加版本戳的机制。存储大小为 8 个字节。备注每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 timestamp 列。每次修改或插入包含 ti原创 2009-08-01 10:57:00 · 6650 阅读 · 0 评论 -
获取一周数据的设计 @@DATEFIRST
@@DATEFIRST 返回 SET DATEFIRST 参数的当前值,SET DATEFIRST 参数指明所规定的每周第一天:1 对应星期一,2 对应星期二,依次类推,用 7 对应星期日。 语法 @@DATEFIRST 返回类型 tinyint 注释 美国英语中默认 7 对应星期日。 示例 下面的示例将每周第一天设为 5 (星期五),并假定当日是星期六。SELECT 语句返回 DATEFIRST原创 2009-08-19 16:43:00 · 999 阅读 · 0 评论 -
mssql 2005 开启1433端口
方法如下:配置工具-> Sql Server Configuration Manager-> MSSQLSERVER的协议 看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433, "已启用"改为"是" 配置工具-> Sql Server Configuration Manager-> SQL Native原创 2009-07-15 14:50:00 · 1442 阅读 · 0 评论 -
生成交叉表的简单通用存储过程
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_qry]) and OBJECTPROPERTY(id, NIsProcedure) = 1) drop procedure [dbo].[p_qry] GO转载 2009-09-15 17:37:00 · 504 阅读 · 0 评论 -
如何让你的SQL运行得更快
---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略 了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库 环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践 中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的whe re子句。在对它们进行适当的转载 2009-10-16 17:11:00 · 429 阅读 · 0 评论 -
产生6位随机密码
SELECT CAST(FLOOR(RAND()*10) AS VARCHAR(1)) + CAST(FLOOR(RAND()*10) AS VARCHAR(1)) + CAST(FLOOR(RAND()*10) AS VARCHAR(1)) + CAST(FLOOR(RAND()*10) AS VARCHAR(1)) + CAST(FLOO原创 2010-01-18 14:44:00 · 1046 阅读 · 0 评论 -
ASP.NET防SQL注入脚本程序
public class SqlCheck { public SqlCheck() { // // TODO: 在此处添加构造函数逻辑 // } public SqlConnection oconn() { SqlConnectio转载 2010-01-30 15:17:00 · 837 阅读 · 0 评论 -
( 转 ) 实现千万级数据的分页的通用存储过程
01set ANSI_NULLS ON02set QUOTED_IDENTIFIER ON03go 04 05/* 06功能描述: 通用分页显示查询转载 2010-03-09 15:21:00 · 521 阅读 · 0 评论 -
sp_rename 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
sp_rename 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 语法 sp_rename [ @objname = ] object_name , [ @newname = ] new_name [ , [ @objtype = ] object_type ] 参数 [@objname =] object_name 是用户对象(表、视图、列、存储过程、触发器原创 2010-01-05 09:48:00 · 1277 阅读 · 0 评论 -
用sql语句实现阳历与农历转换
1.建一张表 存放数据 在下面SQL函数中有用到create table solardata ( yearid int not null, data char(7) not null, dataint int not null ) --插入数据 insert int转载 2010-04-20 09:39:00 · 1755 阅读 · 0 评论 -
oracle minus 与sqlserver except
Oracle中MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。 SQLSERVER中EXCEPT运算符返回由EXCEPT运算符左转载 2012-07-03 14:28:21 · 1990 阅读 · 0 评论