`
water84222
  • 浏览: 375363 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

超精华的SQL语句

阅读更多
sql server 取日期的年月日部分的函数 
convert(varchar(10),getdate(),120) 

varchar(10) 截取位数可以调节,最多能显示19位(varchar(19))。 
----------------------------------
查找存在某些字段的用户表和视图    CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。

select name,case when xtype='u' then 'usertable' else 'userview' end as xtype
from sysobjects
where id in (
select id from syscolumns where name in('商品编号','商品名称')
) and (xtype='u' or xtype='v')
order by xtype
————————————————————————————
字段中的全角数字转换为半角数字    CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。
建立函数
create function changestr (@s varchar(100))  
  returns varchar(100) as
  --字符串中的全角数字转换为半角数字
  begin  
  set   @s   =   replace(@s,'0','0')  
  set   @s   =   replace(@s,'1','1')  
  set   @s   =   replace(@s,'2','2')  
  set   @s   =   replace(@s,'3','3')  
  set   @s   =   replace(@s,'4','4')  
  set   @s   =   replace(@s,'5','5')  
  set   @s   =   replace(@s,'6','6')  
  set   @s   =   replace(@s,'7','7')  
  set   @s   =   replace(@s,'8','8')  
  set   @s   =   replace(@s,'9','9')  
  return   @s  
  end  
  go  
----------------------------------------------
create function changenum(@str nvarchar(4000))  
  returns  decimal
  --全角数字转换为半角数字 
  as  
  begin  
       declare   @tmp   nvarchar(4000)  
       while   len(@str)>0  
       begin  
            select   @tmp=isnull(@tmp,'')+nchar(unicode(left(@str,1))-65248)  
            select   @str=stuff(@str,1,1,'')  
       end  
       return   @tmp        
  end  
  go  
----------------------------------------------
select dbo.changenum('132610593')
select dbo.changestr('132610593**')
---------------------------------------
遍历每个表进行指定操作    CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。
删除数据库中存在userid字段的表中符合userid='qifei'的所有记录
use Study
DECLARE @TableName varchar(20)
DECLARE @sqlstr varchar(100)
DECLARE Table_Cursor CURSOR FOR
select o.name from syscolumns c,sysobjects o
where c.name='userid' and o.id=c.id and o.xtype='u'
OPEN Table_Cursor
FETCH NEXT FROM  Table_Cursor INTO @TableName
WHILE(@@FETCH_STATUS=0)
BEGIN
select @sqlstr='delete from '+@TableName+' where userid=''qifei'''
exec  (@sqlstr)
FETCH NEXT FROM  Table_Cursor INTO @TableName
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
------------------------------
遍历替换整个数据库中所有用户表的字段中的数据    CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。

DECLARE @table_name sysname
DECLARE @table_id int
DECLARE @strSource varchar(20),@strDest varchar(20)
set @strSource='Source   --要替换掉的字符串
set @strDest='Dest'           --用来替换的字符串

-- 获得所有User表
DECLARE tables_cursor CURSOR FOR select name,id from sysobjects where xtype='U'

OPEN tables_cursor

-- Perform the first fetch
FETCH NEXT FROM tables_cursor INTO @table_name,@table_id

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN

-- 获取表的文本类型字段
-- 'char','nchar','varchar','nvarchar','ntext','text'
DECLARE columns_cursor CURSOR FOR select name from syscolumns where id=@table_id and xtype in (select xtype from systypes where name='varchar')
DECLARE @column_name varchar(255)

OPEN columns_cursor

FETCH NEXT FROM columns_cursor INTO @column_name
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @cmd varchar(8000)

-- 遍历表@table_name的每条记录的字段@column_name,更新该字段的内容
-- 动态生成执行语句
SET @cmd='
DECLARE @str_value varchar(8000)
DECLARE recorder_cursor CURSOR FOR select '+@column_name+' from '+@table_name+'
OPEN recorder_cursor
FETCH NEXT FROM recorder_cursor INTO @str_value
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT REPLACE(@str_value,'''+@strSource+''','''+@strDest+''')
UPDATE '+@table_name+' SET '+@column_name+'=@str_value WHERE CURRENT OF recorder_cursor

FETCH NEXT FROM recorder_cursor INTO @str_value
END
CLOSE recorder_cursor
DEALLOCATE recorder_cursor'

Print @cmd
 --EXEC sp_executesql @cmd

FETCH NEXT FROM columns_cursor INTO @column_name
END


CLOSE columns_cursor
DEALLOCATE columns_cursor

-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM tables_cursor INTO @table_name,@table_id
END

CLOSE tables_cursor
DEALLOCATE tables_cursor


------------------------------------------------------------------------------------------
csdn会员  zjcxc(邹建)

--1.替换一个表中的所有字段中的ABC为123  

declare   @s   nvarchar(4000),@tbname   sysname  
select    @s=N'',@tbname=N'jobs'     --要处理的表名  
select    @s=@s+N','+quotename(a.name)+N'=replace('+quotename(a.name)+N',N''ABC'',N''123'')'  
from   syscolumns   a,systypes   b  
where   a.id=object_id(@tbname)    
and   a.xusertype=b.xusertype  
and   b.name   like   N'%char'  
set   @s=stuff(@s,1,1,N'')  
exec(N'update   '+@tbname+'   set   '+@s)  

--2.替换当前数据库的所有表中的所有字段中的ABC为123  
exec   sp_msforeachtable   @command1=N'  
declare   @s   nvarchar(4000),@tbname   sysname  
select   @s=N'''',@tbname=N''?''  
select   @s=@s+N'',''+quotename(a.name)+N''=replace(''+quotename(a.name)+N'',N''''ABC'''',N''''123'''')''  
from   syscolumns   a,systypes   b  
where   a.id=object_id(@tbname)    
and   a.xusertype=b.xusertype  
and   b.name   like   N''%char''  
if   @@rowcount>0  
begin  
set   @s=stuff(@s,1,1,N'''')  
exec(N''update   ''+@tbname+''   set   ''+@s)  
end'  
---------------------------------------------------------------------------------
csdn会员 chuifengde(树上的鸟儿)

create proc procTab
@table varchar(100)
as
declare @t table(a int,b varchar(20))
declare @a varchar(1000)

insert @t select distinct b.colid, b.name from sysobjects a Inner Join syscolumns b On a.id=b.id Inner Join systypes c On b.xtype=c.xtype
where a.id=object_id(@table) and a.xtype='U' and c.xtype in(34,35,99,167,175,231,239) order by b.colid

select @a=coalesce(@a+',','')+b+'=isnull('+b+','''')' from @t
select @a='update '+@table+' set '+@a

exec(@a)

go
--如果更新整个库中的表则如下
sp_msforeachtable 'exec procTab ''?'' '
--更新某个表就
exec procTab '表名'
-------------------------------------------------------------------------
 
分享到:
评论

相关推荐

    SQL语句集锦.rar

    动态SQL语句.txt 动态语句.txt 区分大小写.txt 去掉重复的列名.txt 取n到m条记录.txt 合并字符串.txt 多列的行转列.sql 多行补充.sql 多表对多表进行统计.txt 大小写转换.txt 子查寻和内联查寻.txt 学生名次.txt ...

    多种典型T-SQL语句、备份、优化、常见问题处理集合包

    首先说明这个是收集与csdn 多年来的精华帖 有很多经典问题的处理方法,集多为大牛的心血为一体 包括备份还原,导入导出、行列转换、动态sql基本语法、游标、复制 等等,可以说是丰富多彩、包罗万象。 这里不多在阐述...

    超经典,超实用sql

    10. **存储过程和触发器**:存储过程是一组预编译的SQL语句,可以多次调用,提高代码复用。触发器则在特定数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。 以上只是SQL语言的一部分精华,实际的"good sql....

    【精华志】超详细Oracle存储过程使用手册

    本手册“【精华志】超详细Oracle存储过程使用手册”深入探讨了这一主题,旨在帮助C#、ASP.NET开发者以及SQL和DBA专家更好地理解和应用存储过程。 1. **存储过程的概念与优势** - 存储过程是预编译的SQL和PL/SQL...

    MYSQL 注射精华.zip

    - 使用参数化查询(预编译语句):这是防止SQL注入的最有效方法,因为它将用户输入和SQL语句分开处理。 - 输入验证:对所有用户输入进行检查,确保其符合预期的数据格式。 - 限制数据库权限:为应用程序的数据库...

    MySQL自整理超全精华版面试八股文

    当一个SQL语句在MySQL中执行时,它会经历连接器、查询缓存、分析器、优化器和执行器等阶段。如果查询命中缓存,将直接返回结果;否则,经过分析器解析SQL语句,优化器选择最佳执行计划,然后由执行器与存储引擎交互...

    jsp毕业设计——JSP+SQL网上选课系统(源代码+论文+答辩PPT).zip

    开发者可能使用了SQL语句来构建复杂的查询,例如查询学生的选课情况,或者统计每门课程的选课人数。 系统架构上,JSP+SQL选课系统通常采用MVC(Model-View-Controller)设计模式。Model层处理数据逻辑,与数据库...

    oracle超详细Oracle教程

    本压缩包提供了一份超详细的Oracle教程,包括三本书籍的精华内容,旨在帮助学习者深入理解和掌握Oracle数据库技术。 《精通Oracle 10g PL/SQL编程》:这本书主要针对Oracle 10g版本,PL/SQL是Oracle数据库中的过程...

    PHP教程 精华文摘

    - `SELECT`, `INSERT`, `UPDATE`, `DELETE` SQL语句用于数据操作。 9. **会话管理** - `session_start()` 启动会话,`$_SESSION` 超全局数组存储会话数据。 10. **表单处理** - `$_POST` 和 `$_GET` 超全局数组...

    PHP精华文摘(CHM).rar

    使用SQL语句进行查询、插入、更新和删除数据是PHP数据库操作的核心。 5. **PHP文件系统操作**:PHP提供了丰富的文件和目录操作函数,如file_get_contents()读取文件,file_put_contents()写入文件,mkdir()创建目录...

    超系统的C#基础教程,绝对有用

    本教程“超系统的C#基础教程,绝对有用”由京华志与精华志联合出品,旨在帮助初学者和有经验的开发者深入理解和掌握C#的基础知识。 首先,C#的基础语法是学习的重点。这包括变量声明、数据类型(如整型、浮点型、...

    PHP精华文摘(CHM)

    1. **基础语法**:包括变量定义、常量、数据类型(如字符串、整型、浮点型、布尔型、数组、对象等)、运算符(算术、比较、逻辑、赋值等)、流程控制(条件语句、循环语句)等。 2. **函数与类**:PHP拥有丰富的...

    LeadBBS v2.10 论坛.rar

    84.管理员可以直接执行SQL语句来改变论坛 85.管理员可以在后台设定关闭论坛并提示访问用户,但后台仍然可以访问. 86.管理员可以在后台操纵全文索引功能,包括开启全文填充,允许全文索引等(SQL版) 87.管理员可以...

    有关office oracle jdbc 网络的一些知识

    "JDBC.docx"涵盖了JDBC的基本概念、连接数据库的方法、执行SQL语句的API以及事务管理等内容,对于Java开发者来说是不可或缺的参考资料。 再者,网络是信息传输的基础,对于网络工程师来说,理解和掌握网络协议、...

    w3cschools菜鸟教程整站离线打包完美web开发前端后端

    通过W3cschools的教程,你可以学习SQL语句,理解数据库设计,以及如何安全地操作和管理MySQL数据库。 离线学习的便利性在于,无论你身处何地,只要有电脑,就能随时学习。对于英语不熟练的用户,可以利用翻译软件...

    PHP学习资料pdf文件(初学者适用)

    2. **控制结构**:PHP包含条件语句(如if...else,switch),循环语句(如for,while,do...while)以及跳转语句(如break,continue),用于实现程序逻辑控制。 3. **函数**:PHP支持自定义函数,内置函数以及用户...

    Java博客系统源码 Hibernate4、 Spring4、 Struts2 整合 html5后台easyui

    在本项目中,Hibernate4用于简化数据库操作,通过XML或注解配置将Java类与数据库表进行映射,使得开发者可以避免编写大量的SQL语句,提高开发效率。它支持事务处理、缓存机制和复杂的查询操作。 2. **Spring4**:...

    领智网站系统 v3.0 bate 1

    领智首创的超级标签功能突破原始的定性参数形式,使标签功能真正的动起来,该标签集成SQL语句可直接操作数据库、分页、交替颜色、控制缓存,不受页面和频道的限制,在任何一个页面上都可以运行,可以跟据用户设定的...

    一米阳光项目转载phpwind668—关于PHP

    2. 控制结构:包括条件语句(if...else,switch...case)、循环语句(for,while,do...while,foreach)以及跳转语句(break,continue)。 3. 函数:PHP 提供了大量内置函数,同时也支持自定义函数。 4. 文件操作...

Global site tag (gtag.js) - Google Analytics