Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.ms-sqlserver    |    Notorious Rube Goldberg contraption    |    19,505 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 18,014 of 19,505    |
|    Erland Sommarskog to Gene Wirchenko    |
|    Re: SQL Server 2008 Express: Database Di    |
|    29 Nov 10 23:01:26    |
      XPost: microsoft.public.sqlserver.newusers       From: esquel@sommarskog.se              Gene Wirchenko (genew@ocis.net) writes:       > Thank you for that bit. Do you have any examples of these       > errors? A URL would be fine.              There are maybe Connect items about them, but I'm not sure - I filed these       bugs in a system preceding Connect originally.              Anyway, here is a list:              1) They use ALTER TABLE only in situations when it would be accepted        on SQL 6.5. In many cases, ALTER TABLE could do, they instead create        the table under a new name, move data over, move referencing foreign        keys, recreates indexes etc, drops the old table and then rename the        new table to the right name.              2) In the scheme in 1) the transaction scope is wrong. There are three        transactions for something that should be a single transaction - at        least when everything happens behind your back.              3) The script consists of a number of batches. If you opt to generate        the script and run it manually, and some statement fails, this may        abort the transaction. The rest of the script will still be executed,        but now without the transaction. (I am told that if you run the script        from within SSMS, execution will be aborted.)              4) When constraints are moved or readded, they are added with NOCHECK.        This means that SQL Server does not verify the correctness of the        existing data. This goes faster, but it also means that the optimizer        will not trust the constraints, which can have performance implications.              5) Say that you have a Parent and a Child table. You first open the        Child table, and add a column. You generate a script. But then you        decide that the change is wrong, and you close the table without        saving. Then you open Parent and change that table and generate a        script. When you review it, you find that the abandoned change in        Child is there!              Overall, my impression is that the people who wrote this tool in the       dim and distant past, had very little understanding of what it makes       schema changes. The result is a tool which is incorrectly designed from       bottom up. (The reason I talk about the dim and distant past is       that the same bugs are in the SQL 2000 tools as well. They were very       faithfully ported to SQL 2005.)                            --       Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se              Links for SQL Server Books Online:       SQL 2008: http://msdn.microsoft.com/en-us/sqlserver/cc514207.aspx       SQL 2005: http://msdn.microsoft.com/en-us/sqlserver/bb895970.aspx              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca