SQL 收集

iSQlServer發表於2009-07-23
--修改表名稱
EXEC sp_rename 舊錶名,新表名
--修改表欄位名稱
EXEC sp_rename '表.舊欄位','新欄位','COLUMN'
--修改表欄位型別
alter table 表 alter column 欄位 型別(如:int)
--查詢當前資料庫名
select name from [master].[dbo].[sysdatabases] Where DbId=(Select Dbid From [Master].[dbo].[SysProcesses] Where Spid = @@spid)
--查詢表的欄位
select * from Sys.syscolumns where id=object_id('表')
--查詢是否存在使用者表
if exists(select * from sys.sysobjects where id=object_id('表名') and objectproperty(id,N'IsUserTable')=1)
print 'exists'

 

 

SQL語句之普通行列轉換     
      
  假設有張學生成績表(tb_rowtocol)如下   
  Name   Subject   Result   
  張三   語文  73   
  張三   數學  83   
  張三   物理  93   
  李四   語文  74   
  李四   數學  84   
  李四   物理  94   
    
  想變成     
  姓名   語文   數學   物理   
  張三   73  83  93   
  李四   74  84  94   
    
  declare   @sql   varchar(4000)   
  set   @sql   =   'select   Name   as   '   +   '姓名'   
  select   @sql   =   @sql   +   '   ,   sum(case   Subject   when   '''+Subject+'''   then   Result   end)   ['+Subject+']'   
  from   (select   distinct   Subject   from   rowtocol)   as   a   
  set   @sql   =   @sql   +   '   from   rowtocol   group   by   name'   
  exec(@sql)     
      
  如果上述兩表互相換一下:即   
  表名(cj)   
  姓名   語文   數學   物理   
  張三   73  83  93   
  李四   74  84  94   

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-610007/,如需轉載,請註明出處,否則將追究法律責任。

相關文章