已测试过的语句,希望能方便大家使用

  1.  
  2. select * into student2 from student where 1<>1 --复制表(只复制结构,源student,新表名student2  
  3. select * into student5 from student where 11=1 ---连同数据全部复制  
  4.  
  5.  
  6. insert into student2(name,class) select class,name from student   
  7. insert into student2(sex) select class from student   
  8. insert into student2(sex) select id from student   
  9. --以上三条总结 insert into B(a,b,c)select d,e,f from A     拷贝表数据  
  10.  
  11.  
  12.  
  13. --外连接查询  
  14. select a.class ,a.id ,A.name,a.sex,b.class,b.id,b.name,b.sex from  student2 A left outer join student B on a.class =b.name  
  15.  
  16. --提前5分钟提醒  
  17. select * from student where DATEDIFF(minute,inserttime ,getdate())>5  
  18.  
  19.  
  20.  
  21. ---这两个为互补条件  
  22. select * from student3 where  exists(select * from student where student.name=student3.name)--列出student3中在student出现过name 的记录  
  23. union all  
  24. select * from student3 where not  exists(select * from student where student.name=student3.name)--列出student3中没有在student出现过name的记录  
  25.  
  26.  
  27.  
  28. --获取n到m条记录的方法  
  29.  
  30. --select top (m-n+1) * from  
  31. --(select top m * from tablename order by columnname)A   
  32. --order by columnname desc  
  33.  
  34. select top (16-10+1) * from  
  35. (select top 16 * from student2 order by id )A   
  36. order by id desc  
  37.  
  38.  
  39. --如果表中有identity属性,则  
  40. --select * from tablename where identitycol between n and m  
  41.  
  42. select * from student2 where id  between 2 and 6  
  43.  
  44. --如果表中没有identity属性,则  
  45. --select identity(int)id0,* into #temp from tablename  
  46. --select * from #temp where id0>=n  and id0<m 
  47.  
  48. select IDENTITY (int)id0,* into #temp3 from student4 ---id0为新增的identity 列  
  49. select * from #temp3 where id0>=2 and id0<=6  
  50. ----获取一个数据表的所有列名  
  51. declare @objid int,@objname char(40)  
  52. set @objname ='student2' 
  53. select @objid=id from sysobjects where id=OBJECT_ID(@objname)  
  54. select 'Column_name'=name from syscolumns where id=@objid order by colid  
  55.  
  56. ---通过sql 语句来更改用户的密码  
  57. --修改别人的需要sysadmin role  
  58. exec sp_password null,'newpassword','user'  
  59. --如果账号为sa   
  60. exec sp_password null,'newpassword',sa  
  61.  
  62. --如何判断一个表的那些字段不允许为空  
  63. select column_name from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE='NO' and TABLE_NAME ='student2' 
  64.  
  65. --在数据库中找到含有相同字段的表  
  66. --a .查已知列名的情况  
  67. select b.name as tablename,a.name as columnname  
  68. from syscolumns a inner join sysobjects b  
  69. on a.id =b.id  
  70. and b.type='U' 
  71. and a.name='sex' 
  72. --b. 未知列名查所有在不同表出现过的列名  
  73. select o.name as tablename,s1.name as columnname  
  74. from syscolumns s1,sysobjects o  
  75. where s1.id=o.id  
  76. and o.type='U' 
  77. and exists(  
  78. select 1 from syscolumns s2  
  79. where s1.name=s2.name  
  80. and s1.id<>s2.id  
  81. )   
  82.  
  83. --查询第xxx行数据    
  84. select *   
  85. from (select top 17 * from student2)aa  
  86. where not exists (select 1 from (select top (17-1) * from student2)b where aa.id=b.id)    
  87.  
  88. --PS : select 1 和select anycol 和select * 作用上没有差别,都是查看是否有记录,一般是做条件查询用的  
  89. --1可以为任意常量,查到的所有行的值都是它 .效率上 1>anycol>*  (不用查字典表)  
  90.  
  91. --使用游标查询  
  92. --fetch absolute [number] from [cursor_name]  
  93.  
  94.  
  95. --以下是SQLserver日期计算  
  96. --一个月的第一天  
  97. select DATEADD (mm,datediff(mm,0,getdate()),0)  
  98. --本周的星期一  
  99. select DATEADD (wk,datediff(wk,0,getdate()),0)  
  100. --季度的以一天  
  101. select DATEADD (qq,datediff(qq,0,getdate()),0)  
  102. --上个月的最后一天  
  103. select DATEADD (ms,-3,dateadd (mm,datediff(mm,0,getdate()),0))  
  104. --去年的最后一天  
  105. select DATEADD(ms,-3,dateadd(yy,datediff(yy,0,GETDATE()),0))  
  106. --本月的最后一天  
  107. select DATEADD(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0))  
  108. --本月的第一个星期一  
  109. select DATEADD (wk,datediff(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),0)  
  110. --本年的最后一天  
  111. select DATEADD (ms,-3,dateadd(yy,datediff(yy,0,getdate())+1,0))  
  112.  
  113. --快速获取表的记录总数(对大容量表非常有效)  
  114. select rows from sysindexes where id=OBJECT_ID ('student2') and indid in (0,1)