还有很多其他表格都有这个字段,如何同时修改?

解决方案 »

  1.   

    我没有尝试过,但是我知道SQL Server 2000是可以修改系统表的,系统表里面应该有个 syscolumns的表,里面存储着每个列的名字,具体的列名我不知道,你可以在这里把所有同名的列名修改,但我没有验证过是否可行,而且这样修改你得保证被修改的所有列名是否都是你需要的,你可能得考虑一些条件来筛选
      

  2.   

    而且这样修改以后可能不是及时生效,你也许要的重启SQL Server才能看到更新的情况
      

  3.   

    DECLARE CUR_UPCOLNAME CURSOR FOR
    SELECT 
    OBJECT_NAME(SC.ID) AS TBNAME ,
    SC.NAME AS COLNAME
    FROM 
    SYSCOLUMNS SC ,SYSOBJECTS SB WHERE 
    SC.ID=SB.ID AND SB.TYPE='U' AND SC.NAME=@NAME利用游标SP_REANME........
      

  4.   

    CREATE TABLE table1 (old_column_name INT)
    CREATE TABLE table2 (old_column_name INT)
    CREATE TABLE table3 (old_column_name INT)
    go
    DECLARE @sql VARCHAR(max)
    SET @sql = ''
    ;WITH cte_tablenames AS
    (
    SELECT table_name = 'table1' UNION ALL
    SELECT 'table2' UNION ALL
    SELECT 'table3'
    )
    SELECT 'EXEC sp_rename ''['+ table_name +'].old_column_name'',' + '''new_column_name'',' + '''COLUMN''' FROM cte_tablenames
    PRINT @sql
    /*--------------------------------------------------------------------
    EXEC sp_rename '[table1].old_column_name','new_column_name','COLUMN'
    EXEC sp_rename '[table2].old_column_name','new_column_name','COLUMN'
    EXEC sp_rename '[table3].old_column_name','new_column_name','COLUMN'(3 row(s) affected)
    */