| 2:34 pm on Aug 30, 2005 (gmt 0)|
Decided to risk it... and it turned out that you can't have much more than 8000 bytes in a single SQL Server row anyway!
So it will require a proper redevelopment rather than a quick fix, which if it comes back to me will allow me to set up a testing environment.
In case anyone ever wants to know a solution is to use a separate table with just a primary key in it and link back the larger fields to the original table/s.
| 2:41 pm on Aug 30, 2005 (gmt 0)|
Hi Mr Brutal.
I think you just highlighted the case for having an off-line development server. I have this kind of set up and i can mess with my test database as much as I like before applying changes to the live web server.
| 2:47 pm on Aug 30, 2005 (gmt 0)|
You should have no problem in increasing a Varchar column's lenght.
However keep in mind that the total row size should not exced 8KB.
| 3:36 pm on Sep 5, 2005 (gmt 0)|
Also note that during the "alter table" command there will be an exclusive lock on the table so all other processes wishing to access this table will be temporarily blocked.
| 6:35 pm on Sep 9, 2005 (gmt 0)|
If you need more space then varchar will allow, use 'ntext' or 'text'
| 1:14 am on Sep 10, 2005 (gmt 0)|
Mr_Brutal (next time) if you don't have a testing environment you could simply:
- Script out the table and in the script rename it to something new like [tablenameTEST] and then create that new test table.
- Use DTS to copy the LIVE data into the test table.
- Expand the table column to fit your needs
- Run some unit tests at it.
| 5:03 pm on Sep 10, 2005 (gmt 0)|
Bear in mind if you do this you cannot group by text datatypes, so queries and views where you use Max(), Sum() or Count() will probably have to be re-written.
| 8:33 am on Sep 12, 2005 (gmt 0)|
Thats a good idea - basically just copy the table and then try it. Should have thought of that...
My only concern was that it was Live but im sure copying tables on Live databases is well coded for.
| 3:32 pm on Sep 12, 2005 (gmt 0)|
I have also had a similar problem to this. rather than copy the whole table I have created a new table with a varchar coloumn of 2000 added some data, then increased it to 3000 just to test the concept and it has worked, might save a bit of time.