随笔分类 -  SQL

只有注册用户登录后才能阅读该文。
posted @ 2012-01-01 00:27 星火卓越
摘要:xtype 类型34 image35 text36 uniqueidentifier48 tinyint52 smallint56 int58 smalldatetime59 real60 money61 datetime62 float98 sql_variant99 ntext104 bit106 decimal108 numeric122 smallmoney127 bigint165 varbinary167 varchar173 binary175 char189 timestamp231 sysname231 nvarchar239 nchar 阅读全文
posted @ 2011-12-29 00:28 星火卓越
摘要:Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06Select CONVERT(varchar(100), G 阅读全文
posted @ 2011-12-28 20:56 星火卓越
摘要:使用SQL Server 2005 独有的RANK() OVER () 语法*/ SELECT RANK() OVER (ORDER BY 客户编号 DESC) AS 序号, 客户编号, 公司名称FROM 客户; 阅读全文
posted @ 2011-11-30 23:39 星火卓越 阅读(171) 评论(0) 推荐(0)
摘要:select day(dateadd(dd,-1,convert(char(7),dateadd(mm,1,'2008-2-1'),120)+ '-01 ')) 阅读全文
posted @ 2011-08-19 09:47 星火卓越
摘要:declare @BeginDate DATETIMEdeclare @EndDate DATETIMESET @BeginDate='2011-7-1'SET @EndDate='2011-7-30'while @BeginDate <= @EndDatebegin PRINT @BeginDate SET @BeginDate=dateadd(day,1,@BeginDate) end 阅读全文
posted @ 2011-08-06 08:55 星火卓越 阅读(211) 评论(0) 推荐(0)
摘要:ALTER PROCEDURE [dbo].[ST_GetCalendar_S] @Year INT, @Month INT ASBEGINDECLARE @Inmonth as varchar(7)SET @Inmonth = CONVERT(VARCHAR,@Year)+'-'+ CONVERT(VARCHAR,@Month)DECLARE @a table(id int identity(0,1),date datetime)INSERT INTO @a(date) SELECT TOP 31 @Inmonth + '-01' FROM sysobject 阅读全文
posted @ 2011-08-03 01:16 星火卓越 阅读(265) 评论(0) 推荐(0)
摘要:declare @s varchar(100) set @s=N'D3中国gi'SELECT datalength(CH),LEN(CH),CH,长度FROM (select substring(@s,number,1) as ch,LEN(substring(@s,number,1))as '长度'from master..spt_valueswhere type='p' and number between 1 and len(@s)) A 阅读全文
posted @ 2011-06-10 02:52 星火卓越
摘要:清空表数据select * from sysobjects where type='U' AND [name] LIKE 'wf[_]%'ORDER BY [NAME]declare tablecur cursor for select [name] from sysobjects where type='U' AND [name] LIKE 'wf[_]%'declare @procname varchar(100)open tablecurfetch next from tablecur into @procnamewhile 阅读全文
posted @ 2011-06-07 01:25 星火卓越
摘要:问题: 数据库 'XXX' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。无法创建约束。解决方法: DUMP TRANSACTION数据库名 WITH NO_LOG ALTER DATABASE 数据库名 SET RECOVERY SIMPLE 然后再重新压缩一下数据库SQL2008 的收缩日志 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:(SQL2005)Backup Log DNName with no_logg 阅读全文
posted @ 2011-05-23 15:52 星火卓越
只有注册用户登录后才能阅读该文。
posted @ 2011-04-18 21:48 星火卓越
摘要:--获得当月天数 select day(dateadd(mm,1,getdate())-day(getdate())) as 本月天数 ; select getdate() as 当前日期; select day(getdate()) as 目前第几天; select getdate()-day(g 阅读全文
posted @ 2011-02-21 15:50 星火卓越
摘要:DECLARE @WorkDate DATETIMESET @WorkDate='2010-2-20'select DATEDIFF(YY,@WorkDate,GETDATE()),DATEDIFF(MM,@WorkDate,GETDATE()),DATEDIFF(d,@WorkDate,GETDATE()),case when DATEADD(year,DATEDIFF(YY,@WorkDate,GETDATE()),@WorkDate)>GETDATE()-1 THEN DATEDIFF(YY,@WorkDate,GETDATE())-1ELSE DATEDIFF(YY,@WorkD 阅读全文
posted @ 2011-02-21 14:41 星火卓越 阅读(206) 评论(0) 推荐(0)
摘要:1 useAdventureWorks2 select id,object_name(id) as tableName,indid,rows,rowcnt3 from sys.sysindexes where indid in(0,1) 阅读全文
posted @ 2010-12-20 21:02 星火卓越 阅读(142) 评论(0) 推荐(0)
摘要:查询表内容SELECT 表名=case when a.colorder=1 then d.name else '' end,表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,字段序号=a.colorder,字段名=a.name,标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name 阅读全文
posted @ 2010-12-20 20:39 星火卓越
摘要:SQL 2005数据库压缩DUMP TRANSACTIONHB2004 WITH NO_LOG BACKUP LOG HB2004 WITH NO_LOG DBCC SHRINKDATABASE(HB2004) 点击执行!这样子数据库就操作成功了。 程序里面的方法: 压缩数据库日志 --1.清空日志 exec('DUMP TRANSACTION ['+@dbname+'] WITH NO_LOG') --2.截断事务日志: exec('BACKUP LOG ['+@dbname+'] WITH NO_LOG') --3.收缩数据库 阅读全文
posted @ 2010-12-20 16:12 星火卓越
摘要:if exists(select * from sysobjects where name='proc_insert') drop proc proc_insert go create proc proc_insert (@tablename varchar(256)) as begin set nocount on declare @sqlstr varchar(4000) declare @sqlstr1 varchar(4000) declare @sqlstr2 varchar(4000) select @sqlstr='select ''insert '+@tablename sel 阅读全文
posted @ 2010-12-15 10:01 星火卓越 阅读(279) 评论(0) 推荐(0)
摘要:USE masterGODECLARE @SQL VARCHAR(MAX);SET @SQL=''SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)FROM master..sysprocessesWHERE dbid=DB_ID('hotel'); EXEC(@SQL);GOALTER DATABASE hotel SET MULTI_USER 阅读全文
posted @ 2010-12-14 10:36 星火卓越 阅读(293) 评论(0) 推荐(0)
摘要:--第一种方法SELECT RIGHT('00000'+CAST(6 AS nvarchar(50)),5) --左边补0,如 00001,00039RIGHT(CAST(POWER(10,5)AS VARCHAR)+CONVERT(VARCHAR,max(Right(SEQ_CODE,5))+1),5) --左边补0,如 00001,00039SELECT LEFT(CAST(6 AS nvarchar(50))+'00000',5) --右边补0,如 10000,39000--第二种方法SELECT REPLICATE('0',5-len('39'))+'39' --左边补0, 如 000 阅读全文
posted @ 2010-12-04 21:44 星火卓越 阅读(2369) 评论(0) 推荐(0)