sql常用技巧

 

拷贝表结构拷贝表结构
select * into b from a where 1<>1

 

 

跨服务器查询跨服务器查询

 

代码
--跨服务器查询如下:
SELECT a.*,b.stor_Name
FROM OPENROWSET('MSDASQL',
   
'DRIVER={SQL Server};SERVER=tom;UID=sa;PWD=123',
   pubs.dbo.authors) 
AS a,stores b
ORDER BY a.au_lname, a.au_fname
--其中,tom为远程服务器名,stores 是本机数据库pubs中的表
--
需要注意的是若二个表中的记录数目不同会导致某一个表产生完全重复的行,
--
得到的记录集的行数为最长的那个表中的行数



--如:
insert into dbo.Kqmx_200704
select *
 
from openrowset('MSDASQL',
   
'DRIVER={SQL Server};SERVER=192.168.1.253;UID=sa;PWD=',
   one.dbo.Kqmx_200704) 

 

 

 

 

清理日志

 

BACKUP LOG 数据库名字 WITH NO_LOG DBCC SHRINKDATABASE(数据库名字) 

 

 

 

 

删除重复行
代码
--1。如果有ID字段,就是具有唯一性的字段   
    
  delect   
table   where   id   not   in   (   
    
      
select   max(id)   from   table   group   by   col1,col2,col3...   
  )   
  
group   by   子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。   
    
    
    
--2,如果是判断所有字段也可以这样   
      select   *   into   #aa   from   table   group   by   id1,id2,....   
      
delete   table     
      
insert   into   table     
      
select   *   from   #aa   
    
    
    
--3,没有ID的情况   
    
  
select   identity(int,1,1)   as   id,*   into   #temp   from   tabel   
  delect   #   
where   id   not   in   (   
      
select   max(id)   from   #   group   by   col1,col2,col3...)   
  delect   
table   
  inset   
into   table(...)   
        
select   .....   from   #temp   
    
    
--4.col1+','+col2+','...col5   联合主键   
    
    
  
select   *   from     table   where   col1+','+col2+','...col5   in   (   
    
      
select   max(col1+','+col2+','...col5)   from   table     
  
where   having   count(*)>1   
  
group   by   col1,col2,col3,col4     
  )   
  
group   by   子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。   
    
--5   
  select   identity(int,1,1)   as   id,*   into   #temp   from   tabel   
  
select   *   from     #temp   where   id   in   (   
      
select   max(id)   from   #emp   where   having   count(*)>1   group   by   col1,col2,col3...)   

--6.
select   distinct   *   into   #temp   from   tablename     
  
delete   tablename     
  
go   
  
insert   tablename   select   *   from   #temp   
  
go   
  
drop   table   #temp   

 

 

 

 

 

 

 

posted @ 2010-07-01 11:31  风叙  阅读(126)  评论(0)    收藏  举报