首页 > 数据库 >SQL语句大全之技巧篇

SQL语句大全之技巧篇

时间:2023-09-07 15:02:44浏览次数:35  
标签:语句 set Name SQL 128 curObject where select 大全


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 SHRINKFILE2、压缩数据库
dbcc shrinkdatabase(dbname) 3、转移数据库给新用户以已存在用户权限
exec sp_change_users_login 'update_one','newname','oldname'
go 4、检查备份集
RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 5、修复数据库
ALTER DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [dvbbs] SET MULTI_USER
GO 6、说明:更改某个表
exec sp_changeobjectowner 'tablename','dbo'7、存储更改全部表CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
ASDECLARE @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 nameOPEN 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,@OldOwnerFETCH NEXT FROM curObject INTO @Name, @Owner
ENDclose curObject
deallocate curObject
GO 8、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 69while((select min(score) from tb_table)<60)beginupdate tb_table set score =score*1.01where score<60if (select min(score) from tb_table)>60 break else continueend

标签:语句,set,Name,SQL,128,curObject,where,select,大全
From: https://blog.51cto.com/u_15333581/7397312

相关文章

  • Ubentu 16.04.2 LTS安装mysql,jdk1.8
    一、网络设置1、网络设置sudovim/etc/network/interfaces文件中写入以下内容,写完后wq保存退出。#设置网卡名称autoeth0#设置静态IP,如果是使用自动IP用dhcp,后面的不用设置ifaceeth0inetstatic#设置IP地址addressxxx.xxx.xxx.xxx#设置子网掩码netmaskxxx.xxx.xxx.......
  • 用友时空KSOA imagefield SQL注入
    漏洞简介用友时空KSOA平台/servlet/imagefield存在SQL注入漏洞,攻击者可利用该漏洞获取数据库敏感信息。漏洞复现fofa查询:app="用友-时空KSOA"登录页面如下:POC:GET/servlet/imagefield?key=readimage&sImgname=password&sTablename=bbs_admin&sKeyname=id&sKeyvalue=-1'+......
  • 链接服务器导致SQL Server停止响应​
     概要如果多个实例中同时存在数据源为对方实例的链接服务器,并且开启了“分发服务器”的属性,您可能会遇到这种情况。现象14:31时,在SSMS中检查HIS实例是否有复制订阅时,点击了”发布服务器属性“后,SSMS一直无法响应。时,前端应用反馈有连不上数据库的情况,用SSMS测试也无法新建连接,但......
  • sql与js中单引号问题
    1、展现树在构建xml字符串时/***解决当输入值中含有单引号或双引号导致树的展现报js脚本错误*@paramvalue*@return*/privatestaticStringgetFormatString(Stringvalue){returnvalue.replaceAll("/'","'").replaceAll("/"",""&qu......
  • sqlserver自动生成32位字符串
    由于数据库中有一个表的主键类型为varchar(32),而在hibernate中的类型为uuid.hex。所以想通过sqlserver中直接通过写insertinto的sql语句来自动生成主键,可采用: selectREPLACE(CAST(CAST(NEWID()ASBINARY(10))+CAST(GETDATE()ASBINARY(6))ASUNIQUEIDENTIFIER),'-','')......
  • sqlserver移植为Oracle笔记(更新,新增字段名;批量新增记录;日期查询;截取字串函数)
    下面是这两天在项目要sqlserver和oracle兼容的改造中测试出来的笔记:--sqlserver--更改主键字段名'ID'为'ID_'sp_rename  'tb_doc_cat_statistic.ID','ID_','column'--新增字段cat_codealtertabletb_doc_cat_statisticaddcat_codevarchar(100) --oracle--......
  • SQLSERVER2005表字段的修改
     在做项目中总遇到对数据库表的字段进行修改,所以先在此存放以便以后查询SQLSERVER20051、修改字段类型altertable表名ALTERCOLUMN  [字段名]  字段类型;可昨天执行下面的语句:altertableTb_module ALTERCOLUMN  [create_date]  varchar(100);报错信息:消息4......
  • JavaNote03-流程控制语句
    0.流程控制语句流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。程序设计中规定的3种流程结构,即:顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构根据条件,选择性地执行某段代码。有if…else和switch-......
  • 从MySQL全库备份中恢复某个库和某张表的方法
    一定要使用测试库操作一、全库备份恢复单个库的数据流程:1.第一种方法:--从全备中导出所需库的建库语句和INSERT语句。sed-n'/^--CurrentDatabase:`库名`/,/^--CurrentDatabase:`/p'全备.sql>test.sql--导入库,会自动建库mysql库名<test.sql2.另一种方法:mysql......
  • oracle与sqlserver执行count(*)返回的结果兼容
    由于以前都是在sqlserver2005处理,现在客户要求oracle数据库服务器,最初的代码为:allRecordSize=(Integer)rs1.getObject(1);//IntegerallRecordSize=0;当执行的时候报:BigDecimal无法转化为Integer类型为了兼容两者修改后的代码为:Objecto=rs1.getObject(1);System.out.......