能有一千列的表你们的dba也真不简单~~~~~~~

解决方案 »

  1.   

    自己用c#写个循环就可以了。然后sql执行就好了
      

  2.   

    没遇到过,转到sql版去,绉建24小时在线:)
      

  3.   

    string sql = "sql = create tabel test ( ";
    for(int i=0;i<=1000;i++)
    {
    sql += "data" + i.ToString() + " smallint,";
    }
    sql += ")"然后把sql输出,复制到查询分析器里面执行就可以
      

  4.   

    能有一千列的表你们的dba也真不简单~~~~~~~
    ==============================================
    嘿嘿,这时说我呢
    是这样的,当一个事件发生时,需要记录前后共1000个数据,以及事件的时间,点号等。有什么更好的办法吗?
      

  5.   

    SqlCommand cmd = new SqlCommand();
    for (int i = 0;i<1000;i++)
    {
        string sqlstr = "ALTER TABLE yourTableName\r\n"+"ADD "+ "data"+i+" "+"yourdatatype "+"NULL"
        cmd.CommandText = sqlstr;
        cmd.Connection = yourConnection;
        cmd.ExecuteNonQuery();
    }没测试,你试试看
      

  6.   

    打开你的查询分析器,在里面运行下面的Sql语句-------------------------------------------------------------------
    EXEC sp_configure 'allow updates',1 reconfigure with override
    GO--插入的列名
    DECLARE @strColName VARCHAR(10)--循环次数
    DECLARE @intLoopCount int
    SET     @intLoopCount=1--更改表的语句
    DECLARE @SqlScript VARCHAR(255)
    SET @SqlScript='ALTER TABLE YourTableName ADD '   --将这里的YourTableName换成你的表名--循环构造SQL语句
    WHILE @intLoopCount<=1000
    BEGIN
             -- 得到列名(data1,data2....)
    SET @strColName='data'+ CAST(@intLoopCount AS VARCHAR(5))         -- 构造SQL语句
    SET @SqlScript=@SqlScript+@strColName+' smallint null,'         SET @intLoopCount=@intLoopCount+1
    END--去掉SQL语句的最后一个','
    SET @SqlScript=SUBSTRING(@SqlScript,0,LEN(@SqlScript))--print @SqlScript
    -- 执行该语句更改表
    EXEC(@SqlScript)GO
    EXEC sp_configure 'allow updates',0 reconfigure with override--------------------------------------------------------你的这个表够大,千多列,真正管理起来你就知道多麻烦了,
      

  7.   

    不要写了,这种表设计出来也是垃圾!!不能报表改了么?
    夹一个Flag字段来区分?
    全部是 smallint, null,Flag,Value
    Flag = 1 : Value = data1
    Flag = 2 : Value = data2
    Flag = 3 : Value = data3
    Flag = 4 : Value = data4??为什么不这样设计!!!!???
    ???????????1000列的表,维护,效率,都无从谈起。
      

  8.   

    搞好了,谢谢各位,结贴。 可惜最后这个问题没回答。非常感谢 sanall(Sanall Cobain)