随笔分类 -  SQL SERVER

摘要:USE [master]GOif exists (select * from sys.databases where name = 'Test_1')drop database Test_1GO--创建新库,要演练分区所以我们会多创建两个文件组Test_A,Test_B,以便在后面的分区方案中使用。CREATE DATABASE [Test_1] ON PRIMARY ( NAME = N'test_1', FILENAME = N'D:\sqldata\test_1.mdf' , SIZE = 10240KB , MAXSIZE = UNLIM 阅读全文
posted @ 2013-07-06 16:49 划破黑夜 阅读(271) 评论(0) 推荐(0)
摘要:declare @pids varchar(max)='' select @pids=convert(varchar(10),pid)+','+@pids from product where pname like '%red%' select @pids将表product里 pname是红色的产品全部累加我们要慎用@@IDENTITY,原因是 @@IDENTITY 它总是获取最后一条变更数据的自增字段的值,而忽略了进行变更操作所在的范围约束。比如,我有表 A 和表 B 两个表,现在我在表 A 上定义了一个Insert触发器,当在表 A 中插入一 阅读全文
posted @ 2013-06-27 10:35 划破黑夜 阅读(238) 评论(0) 推荐(0)
摘要:1.声明用户自定义表类型CREATE TYPE [dbo].[pmodelTable] AS TABLE( [pmodel] [varchar](60) NULL --要传入的列)GO2.存储过程中使用自定义表类型create proc P_GetPmidByPmodel(@pmodel pmodelTable readonly --自定义的表类型)asbegin select pmid from V_ProductModel v inner join @pmodel p on v.pmodel=p.pmodelendgo3.测试效果declare @table as pm... 阅读全文
posted @ 2013-05-02 09:46 划破黑夜 阅读(287) 评论(0) 推荐(0)
摘要:SQL Profiler是个好东西。极大的方便了我们查看SQL语句的执行情况,也能帮助我们了解SQL的很多内部状态。那么除了运行SQL Profiler就没有其他方法可以实现了吗?当然不会,这里提供一个简单的示例以示说明:1. 使用系统存储过程sp_trace_create建立一个Trace,这个SP可以在on-line help上找到DECLARE @TraceIdOut int, @On bit, @rc int-- Define the traceexec @rc = sp_trace_create @TraceIdOut OUTPUT, 2, N'c:/sqlauditfile 阅读全文
posted @ 2013-03-22 08:46 划破黑夜 阅读(352) 评论(0) 推荐(0)
摘要:在上一节中,简单介绍了两个工具,下面使用一个简单的实例来说明如何使用这两个工具,来进行数据库优化。 在上一节中,简单介绍了两个工具,下面使用一个简单的实例来说明如何使用这两个工具,来进行数据库优化。二、启动sql server profiler 1) 启动方法如下图,在SQL Server Management Studio中-->“工具”菜单上选择“sql server profilter” 2) 在“开始”菜单上,选择“所有程序”——>“microsoft sql server 2005”——>“性能工具”——>“sql server profilter”命令。 三 阅读全文
posted @ 2013-03-22 08:45 划破黑夜 阅读(644) 评论(0) 推荐(0)
摘要:今天用delete触发器,发现无效打开以前的删除代码 一看truncate table PlanQty 以前还没见过 这个 truncate然后去网上搜下跟delte的区别,结果先存在这里,其他看什么时候有空去测试下1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比 阅读全文
posted @ 2012-12-07 11:35 划破黑夜 阅读(254) 评论(0) 推荐(0)
摘要:--delete触发器IF(EXISTS(SELECT * FROM sysobjects WHERE name='T_PlanQtyDelete'))DROP TRIGGER T_PlanQtyDeletego Create trigger T_PlanQtyDelete On PlanQty for Delete As INSERT INTO dbo.PlanQtyHistory(qty, addDate, Productid) SELECT qty, addDate, Productid FROM deletedgo --u... 阅读全文
posted @ 2012-12-07 11:04 划破黑夜 阅读(5974) 评论(0) 推荐(0)
摘要:WITH MOVIES AS ( SELECT ROW_NUMBER() OVER (ORDER BY uid desc)AS Row,* FROM ValorUser WHERE UserType=1 ) SELECT * FROM MOVIES WHERE Row between (@PageIndex-1)* @PageSize+1 and @PageIndex*@PageSize ORDER BY [uid] DESCWITH MOVIES AS ( SELECT ROW_NUMBER() OVER (ORDER BY uid desc)AS Row,* FR... 阅读全文
posted @ 2012-08-07 11:30 划破黑夜 阅读(149) 评论(0) 推荐(0)
摘要:View Code 1 select syscolumns.name AS ColumnName,systypes.name AS TypeName,syscolumns.length as length2 from syscolumns,sysobjects,systypes where syscolumns.id=sysobjects.id and syscolumns.xtype= systypes.xtype and sysobjects.name= '表名' order by syscolumns.colid1 select * from sys.all_column 阅读全文
posted @ 2012-05-15 11:27 划破黑夜 阅读(962) 评论(0) 推荐(1)