随笔分类 -  SQL2005 /2000

一些SQL
计算所有表数据量、占用空间
摘要:create table #tmp (name varchar(50),rows int,reserved varchar(50),data varchar(50),index_size varchar(50),unused varchar(50));insert into #tmp (name,rows,reserved,data,index_size,unused) exec sp_msforeachTable "sp_spaceused '?'"select *,--sum(convert(decimal,replace(reserved,' 阅读全文

posted @ 2012-02-16 09:22 张宏宇 阅读(238) 评论(0) 推荐(0)

删除数据库中所用户创建的存储过程SQL
摘要:declare @procName varchar(500)declare cur cursorfor select [name] from sys.objects where type = 'p'open curfetch next from cur into @procNamewhile @@fetch_status = 0beginif @procName <> 'DeleteAllProcedures'exec('drop procedure ' + @procName)fetch next from cur into @pr 阅读全文

posted @ 2011-08-16 15:00 张宏宇 阅读(218) 评论(0) 推荐(0)

SqlBulkCopy类数据导入
摘要:下表列出了由 SqlBulkCopy 类型公开的成员。 公共构造函数 名称 说明 SqlBulkCopy 已重载。初始化 SqlBulkCopy 类的新实例。页首 公共属性 名称 说明 BatchSize 每一批次中的行数。在每一批次结束时,将该批次中的行发送到服务器。 BulkCopyTimeout 超时之前操作完成所允许的秒数。 ColumnMappings 返回 SqlBulkCopyColumnMapping 项的集合。列映射定义数据源中的列和目标表中的列之间的关系。 DestinationTableName 服务器上目标表的名称。 NotifyAfter 定义在生成通知事件之... 阅读全文

posted @ 2011-06-08 09:29 张宏宇 阅读(277) 评论(0) 推荐(0)

SQL 一些命令
摘要:的数据作为分区重新分配给现有的已分区表,或者将分区由一个已分区表切换到另一个已分区表,则目标分区必须存在,并且必须为空。 如果重新分配一个分区的数据以组成单个表,则必须已经创建了目标表,并且该表必须为空。源表或分区以及目标表或分区必须在同一个文件组中。对应的索引或索引分区也必须在同一个文件组中。切换分区还有许多其他限制。有关详细信息,请参阅使用分区切换高效传输数据。table和target_table不能相同。target_table可以是由多个部分构成的标识符。source_partition_number_expression和target_partition_number_express 阅读全文

posted @ 2011-04-12 08:44 张宏宇 阅读(249) 评论(0) 推荐(0)

SQL 判断表和临时表时否存在
摘要:判断 临时表#tmp是否存在if(object_id('tempdb..#tmp') is not null)begindrop table #tmpend1)判断 表DepartmentInfo是否存在if object_id('DepartmentInfo') is null beginselect '不存在'endelsebegin select '存在'end 2)判断表'LC_Department是否存在if not exists (select * from sysobjects where [name] = 阅读全文

posted @ 2011-03-29 09:16 张宏宇 阅读(214) 评论(0) 推荐(0)

SQL 计算一个月有多少天
摘要:declare @Year varchar(10),@Month varchar(10)set @Year=Convert(varchar,DATEPART(year,CONVERT(DATETIME,'2011-02-15')))set @Month=Convert(varchar,DATEPART(month,CONVERT(DATETIME,'2011-02-15')))select (DAY(dateadd(dd,-1,DATEADD(m,1,cast(@Year as varchar(4)) + '-' + cast(@Month as 阅读全文

posted @ 2011-02-28 16:30 张宏宇 阅读(191) 评论(0) 推荐(0)

SQL Case When Then 条件判断
摘要:CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 WHEN 条件4 THEN 结果4......... WHEN 条件N THEN 结果N ELSE 结果XENDCase具有两种格式。简单Case函数和Case搜索函数。--简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女'ELSE '其他' END例如:SELECT id, 阅读全文

posted @ 2011-01-13 15:34 张宏宇 阅读(361) 评论(0) 推荐(0)

INNER JOIN 语法
摘要:inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录INNER JOIN 语法:INNER JOIN 连接两个数据表的用法:SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号INNER JOIN 连接三个数据表的用法:SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号 阅读全文

posted @ 2011-01-13 13:28 张宏宇 阅读(271) 评论(0) 推荐(0)

SQL 一些常用的函数整理
摘要:一.与编码有关:1.char() 2.ascII() 3.unicode() 4.Nchar() select ascii('A') 结果为:65,ascii()函数的作用是转换为acsii码 select char(65) 结果为:A,char()函数的作用是转换为字符串 select unicode('Anv') 结果为:65 按照 Unicode 标准的定义,返回输入表达式的第一个字符的整数... 阅读全文

posted @ 2010-09-06 17:01 张宏宇 阅读(180) 评论(0) 推荐(0)

SQL 游标
摘要:DECLARE @RA_Page varchar(50)DECLARE @RA_ID varchar(50)DECLARE myCusor CURSOR FORSELECT [RA_ID], [RA_Page] FROM Sys_RowAttributeOPEN myCusorFETCH NEXT FROM myCusor INTO @RA_ID,@RA_Page WHILE @@FETCH_ST... 阅读全文

posted @ 2010-09-06 16:59 张宏宇 阅读(123) 评论(0) 推荐(0)

修改SA 密码 无法设置主体sa 15535
摘要:使用Windows方式登录数据库后,执行以下命令:EXEC sp_password null, 'sa', 'sa' ALTER LOGIN sa ENABLE您使用 Microsoft SQL Server 2008 工具连接到运行 Microsoft SQL Server 2005 的服务器。 打开属性对话框,为 SQL Server Administrator 帐户,然后您执行了"sa"登... 阅读全文

posted @ 2010-07-29 10:32 张宏宇 阅读(2110) 评论(1) 推荐(0)

SQL2005递归
摘要:string sql = @"WITH locs(id,levelname,parentid,flag,loclevel) AS (SELECT id,levelname,parentid,flag,0 as loclevel FROM T_Level where id="+LevelId+" UNION ALL SELECT l.id,l.levelname,l.parentid,l.flag,... 阅读全文

posted @ 2009-10-19 11:58 张宏宇 阅读(158) 评论(0) 推荐(0)

SQL2005 分页
摘要:SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY Quote_ID) AS QuoteID,* FROM [V_Quote] ) AS sp WHERE QuoteID BETWEEN1 AND 25ROW_NUMBER (Transact-SQL)返回结果集分区内行的序列号,每个分区的第一行从 1 开始。 Transact-SQL 语法约定 语法... 阅读全文

posted @ 2009-09-28 17:56 张宏宇 阅读(208) 评论(0) 推荐(0)