sql server 取日期的年月日部分的函数 convert(varchar(10),getdate(),120)
varchar(10) 截取位数可以调节,最多能显示19位(varchar(19))。
----------------------------------
查找存在某些字段的用户表和视图
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
————————————————————————————
字段中的全角数字转换为半角数字 建立函数
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**')
---------------------------------------
遍历每个表进行指定操作 删除数据库中存在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 ------------------------------
遍历替换整个数据库中所有用户表的字段中的数据
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语句.txt 动态语句.txt 区分大小写.txt 去掉重复的列名.txt 取n到m条记录.txt 合并字符串.txt 多列的行转列.sql 多行补充.sql 多表对多表进行统计.txt 大小写转换.txt 子查寻和内联查寻.txt 学生名次.txt ...
首先说明这个是收集与csdn 多年来的精华帖 有很多经典问题的处理方法,集多为大牛的心血为一体 包括备份还原,导入导出、行列转换、动态sql基本语法、游标、复制 等等,可以说是丰富多彩、包罗万象。 这里不多在阐述...
10. **存储过程和触发器**:存储过程是一组预编译的SQL语句,可以多次调用,提高代码复用。触发器则在特定数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。 以上只是SQL语言的一部分精华,实际的"good sql....
本手册“【精华志】超详细Oracle存储过程使用手册”深入探讨了这一主题,旨在帮助C#、ASP.NET开发者以及SQL和DBA专家更好地理解和应用存储过程。 1. **存储过程的概念与优势** - 存储过程是预编译的SQL和PL/SQL...
- 使用参数化查询(预编译语句):这是防止SQL注入的最有效方法,因为它将用户输入和SQL语句分开处理。 - 输入验证:对所有用户输入进行检查,确保其符合预期的数据格式。 - 限制数据库权限:为应用程序的数据库...
当一个SQL语句在MySQL中执行时,它会经历连接器、查询缓存、分析器、优化器和执行器等阶段。如果查询命中缓存,将直接返回结果;否则,经过分析器解析SQL语句,优化器选择最佳执行计划,然后由执行器与存储引擎交互...
开发者可能使用了SQL语句来构建复杂的查询,例如查询学生的选课情况,或者统计每门课程的选课人数。 系统架构上,JSP+SQL选课系统通常采用MVC(Model-View-Controller)设计模式。Model层处理数据逻辑,与数据库...
本压缩包提供了一份超详细的Oracle教程,包括三本书籍的精华内容,旨在帮助学习者深入理解和掌握Oracle数据库技术。 《精通Oracle 10g PL/SQL编程》:这本书主要针对Oracle 10g版本,PL/SQL是Oracle数据库中的过程...
- `SELECT`, `INSERT`, `UPDATE`, `DELETE` SQL语句用于数据操作。 9. **会话管理** - `session_start()` 启动会话,`$_SESSION` 超全局数组存储会话数据。 10. **表单处理** - `$_POST` 和 `$_GET` 超全局数组...
使用SQL语句进行查询、插入、更新和删除数据是PHP数据库操作的核心。 5. **PHP文件系统操作**:PHP提供了丰富的文件和目录操作函数,如file_get_contents()读取文件,file_put_contents()写入文件,mkdir()创建目录...
本教程“超系统的C#基础教程,绝对有用”由京华志与精华志联合出品,旨在帮助初学者和有经验的开发者深入理解和掌握C#的基础知识。 首先,C#的基础语法是学习的重点。这包括变量声明、数据类型(如整型、浮点型、...
1. **基础语法**:包括变量定义、常量、数据类型(如字符串、整型、浮点型、布尔型、数组、对象等)、运算符(算术、比较、逻辑、赋值等)、流程控制(条件语句、循环语句)等。 2. **函数与类**:PHP拥有丰富的...
84.管理员可以直接执行SQL语句来改变论坛 85.管理员可以在后台设定关闭论坛并提示访问用户,但后台仍然可以访问. 86.管理员可以在后台操纵全文索引功能,包括开启全文填充,允许全文索引等(SQL版) 87.管理员可以...
"JDBC.docx"涵盖了JDBC的基本概念、连接数据库的方法、执行SQL语句的API以及事务管理等内容,对于Java开发者来说是不可或缺的参考资料。 再者,网络是信息传输的基础,对于网络工程师来说,理解和掌握网络协议、...
通过W3cschools的教程,你可以学习SQL语句,理解数据库设计,以及如何安全地操作和管理MySQL数据库。 离线学习的便利性在于,无论你身处何地,只要有电脑,就能随时学习。对于英语不熟练的用户,可以利用翻译软件...
2. **控制结构**:PHP包含条件语句(如if...else,switch),循环语句(如for,while,do...while)以及跳转语句(如break,continue),用于实现程序逻辑控制。 3. **函数**:PHP支持自定义函数,内置函数以及用户...
在本项目中,Hibernate4用于简化数据库操作,通过XML或注解配置将Java类与数据库表进行映射,使得开发者可以避免编写大量的SQL语句,提高开发效率。它支持事务处理、缓存机制和复杂的查询操作。 2. **Spring4**:...
领智首创的超级标签功能突破原始的定性参数形式,使标签功能真正的动起来,该标签集成SQL语句可直接操作数据库、分页、交替颜色、控制缓存,不受页面和频道的限制,在任何一个页面上都可以运行,可以跟据用户设定的...
2. 控制结构:包括条件语句(if...else,switch...case)、循环语句(for,while,do...while,foreach)以及跳转语句(break,continue)。 3. 函数:PHP 提供了大量内置函数,同时也支持自定义函数。 4. 文件操作...