转摘CSDN

比如:
数据表中有字段,原先排列是这样:
B   A   D   C   E   F

现在要求用SQL修改表结构让它重新排列,按英文字母排,这样:
A   B   C   D   E   F  
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列--遍历表
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列
  go
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  sp_configure 
'allow updates',1 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
go 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
RECONFIGURE   WITH   OVERRIDE 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
go
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
declare @SQL varchar(4000)
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
declare @TableName varchar(30)
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
declare sTableName Cursor for select [name] from sysobjects where xtype='u' and name<>'dtproperties'
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
Open sTableName
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
fetch next from sTableName into @TableName
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
while @@fetch_status=0
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
begin
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列    
--更新 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列
    set @SQL='update syscolumns set colid=(select count(*) from syscolumns a where a.name<=syscolumns.name and a.id=syscolumns.id),colorder=(select count(*) from syscolumns a where a.name<=syscolumns.name and a.id=syscolumns.id) where id=object_id('''+@TableName+''')' 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列    
print(@SQL)
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列    
exec(@SQL)
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列    
fetch next from sTableName into @TableName
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
end
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
close sTableName    
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
deallocate sTableName
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
go
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  sp_configure 
'allow updates',0 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
go 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列  
RECONFIGURE   WITH   OVERRIDE 
转摘_修改表结构,让表中的字段按英文字母的顺序重新排列

相关文章:

  • 2022-12-23
  • 2021-06-05
  • 2022-12-23
  • 2021-07-23
  • 2021-12-08
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-11
  • 2021-08-31
  • 2022-02-12
  • 2022-02-09
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案