三、技巧

1、1=1,1=2的使用,在SQL语句组合时用的较多

“where 1=1” 是表示选择全部    “where 1=2”全部不选,

如:

if

@strWhere !=''

begin

set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' +@strWhere

end

else

begin

set @strSQL = 'select count(*) as Total from [' + @tblName + ']'

end

我们可以直接写成

错误!未找到目录项。

set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere

2、收缩数据库

--重建索引

DBCC REINDEX DBCC INDEXDEFRAG

--收缩数据和日志

DBCC SHRINKDB DBCC SHRINKFILE

3、压缩数据库

dbccshrinkdatabase(dbname)

4、转移数据库给新用户以已存在用户权限

execsp_change_users_login 'update_one','newname','oldname' go

5、检查备份集

RESTORE VERIFYONLY fromdisk='E:\dvbbs.bak'

6、修复数据库

ALTER DATABASE [dvbbs]SET SINGLE_USER

GO

DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK

GO

ALTER DATABASE [dvbbs] SET MULTI_USER

GO

7、日志清除

SET NOCOUNT ON DECLARE @LogicalFileName sysname,

@MaxMinutes INT,

@NewSize INT

USE tablename-- 要操作的数据库名

SELECT  @LogicalFileName ='tablename_log', -- 日志文件名

@MaxMinutes = 10, -- Limit on time allowed to wrap log.

@NewSize = 1  -- 你想设定的日志文件的大小(M)

Setup / initialize DECLARE @OriginalSize int SELECT @OriginalSize = size  FROM sysfiles  WHERE name = @LogicalFileName SELECT 'Original Size of ' + db_name() + ' LOG is ' +  CONVERT(VARCHAR(30),@OriginalSize) + '8K pages or ' +  CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) +'MB'  FROM sysfiles  WHERE name = @LogicalFileName CREATE TABLE DummyTrans  (DummyColumn char (8000) not null)

DECLARE @Counter    INT,  @StartTime DATETIME,  @TruncLog   VARCHAR(255) SELECT @StartTime = GETDATE(),  @TruncLog = 'BACKUP LOG ' + db_name() +' WITH TRUNCATE_ONLY'

DBCC SHRINKFILE (@LogicalFileName, @NewSize) EXEC (@TruncLog) -- Wrap the log if necessary. WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has notexpired  AND @OriginalSize = (SELECT size FROMsysfiles WHERE name = @LogicalFileName)    AND (@OriginalSize * 8 /1024) >@NewSize    BEGIN -- Outer loop. SELECT @Counter = 0  WHILE   ((@Counter < @OriginalSize/ 16) AND (@Counter < 50000))  BEGIN -- update  INSERT DummyTrans VALUES ('Fill Log')DELETE DummyTrans  SELECT @Counter = @Counter + 1  END  EXEC (@TruncLog)    END SELECT 'Final Size of ' + db_name() + ' LOG is ' +  CONVERT(VARCHAR(30),size) + ' 8K pagesor ' +  CONVERT(VARCHAR(30),(size*8/1024)) +'MB'  FROM sysfiles  WHERE name = @LogicalFileName DROP TABLE DummyTrans SET NOCOUNT OFF

8、说明:更改某个表

exec sp_changeobjectowner'tablename','dbo'

9、存储更改全部表

CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128), @NewOwner as NVARCHAR(128) AS

DECLARE @Name    as NVARCHAR(128) DECLARE @Owner   as NVARCHAR(128) DECLARE @OwnerName   as NVARCHAR(128)

DECLARE curObject CURSOR FOR select 'Name'    = name,    'Owner'    = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name

OPEN   curObject FETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0) BEGIN      if @Owner=@OldOwner begin    set @OwnerName = @OldOwner + '.' + rtrim(@Name)    exec sp_changeobjectowner @OwnerName, @NewOwner end -- select @name,@NewOwner,@OldOwner

FETCH NEXT FROM curObject INTO @Name, @Owner END

close curObject deallocate curObject GO

10、SQL SERVER中直接循环写入数据

declare @i int set @i=1 while @i<30 begin

insert into test (userid) values(@i)

set @i=@i+1 end

案例: 有如下表,要求就裱中所有沒有及格的成績,在每次增長0.1的基礎上,使他們剛好及格:

Name     score

Zhangshan   80

Lishi       59

Wangwu      50

Songquan    69

while((select min(score) from tb_table)<60)

begin

update tb_table set score =score*1.01

where score<60

if (select min(score) from tb_table)>60

 break

 else

   continue

end

常用经典SQL语句大全(技巧)的更多相关文章

  1. 常用经典SQL语句大全完整版--详解+实例 (存)

    常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012  http://blog.sina.com.cn/s/blog_84 ...

  2. 常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

    常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML ...

  3. 常用经典SQL语句大全(提升)

    二.提升 1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) ...

  4. 常用经典SQL语句大全(基础)

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sqlserver --- 创 ...

  5. 经典SQL语句大全以及50个常用的sql语句

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  6. [转] - 经典SQL语句大全

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  7. SQL之经典SQL语句大全

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  8. 浅谈c#的三个高级参数ref out 和Params C#中is与as的区别分析 “登陆”与“登录”有何区别 经典SQL语句大全(绝对的经典)

    浅谈c#的三个高级参数ref out 和Params   c#的三个高级参数ref out 和Params 前言:在我们学习c#基础的时候,我们会学习到c#的三个高级的参数,分别是out .ref 和 ...

  9. BayaiM__经典SQL语句大全

    BayaiM__经典SQL语句大全 原创 作者:bayaim 时间:2016-06-16 09:22:24 32 0删除编辑 以下这篇文章,是一个垃圾,垃圾中的垃圾 ----------------- ...

随机推荐

  1. 【原创】测试不同浏览器播放canvas动画的平滑程度

    Canvas无疑是HTML5开放式网络平台最激动人心的技术之一.目前,除了IE8以外,各类浏览器的新版本都支持HTML5 Canvas. 程序员需要通过Javascript调用Canvas API.基 ...

  2. delphi Caption 垂直显示标签文本

    //垂直显示标签文本 Label1.Caption:='垂'+#13+'直'+#13+'显'+#13+'示';//使用相同的方法,我们也可以制作垂直显示的提示(Hint):button1.Hint:= ...

  3. VVDocumenter - Xcod代码注释工具

    刚接触IOS开发时,发现XCODE非常的强大的,后续的代码实践中发现XOCDE的代码文档注释非常的差, 每次都要用手敲,蛋疼至极: 随着不断学习发现XCODE有代码片段内嵌一说(如:for .bloc ...

  4. jquery datatable隐藏字段获取

    如下,假Xpath为隐藏列,单击某一行时获取 $('#MessPropGrid tbody').on('click', 'tr', function () { tXpath=$("#Mess ...

  5. php上传常见文件类型对应的$_FILES["file"]["type"](转)

    php上传常见文件类型对应的$_FILES["file"]["type"] from:http://hi.baidu.com/7book/item/374971 ...

  6. The 7 Stages Of Scaling Web Apps--reference

    reference from:http://highscalability.com/7-stages-scaling-web-apps TUESDAY, SEPTEMBER 23, 2008 AT 4 ...

  7. python读取文本、配对、插入数据脚本

    #在工作中遇见了一个处理数据的问题,纠结了很久,写下记录一下.#-*- coding:UTF-8 -*- #-*- author:ytxu -*- import codecs, os, sys, pl ...

  8. Window Pains

    http://poj.org/problem?id=2585 Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  9. Android开发之神奇的Fading Edge,让你的View更有层次感!

    最近在研究Android Framework层源码,发现我们对源码的理解应该建立在对API的理解之上,如果有一些API你没用过,那么即使你在源码中见到这个东西都不知道是干嘛的,更谈不上理解了.一直以来 ...

  10. 前端必会css整理

    1.设置css样式的三种方式?         外部样式表,引入一个外部css文件         内部样式表,将css代码放在<head>标签内部         内联样式,将css样式 ...