You should also check empty values.


I’m not sure if you can set a numeric column = ‘’



In any case, SQL Server does a number of automatic casts and conversions when 
it parses the query. Whether or not you have an issue will depend on several 
factors. It’s good that you are aware of what problems may arise and if they 
don’t then you can assume that the query structure is within tolerance of SQL 
Server’s parser.



Newer versions of SQL Server may also react differently.



Robert



From: WebDude [mailto:[email protected]]
Sent: Tuesday, July 31, 2012 11:11 AM
To: [email protected]
Subject: RE: TeraScript-Talk: O.T. - MSSQL 2008 Changing VarChar to Decimal



Hi Robert,



Thanks for the response.



I just tested this in my old version of Witango, quoting does not seem to be an 
issue. I created a taf that searches then allows an update to the field. I 
started with a varchar (9) when I built the taf. I then changed the column to 
decimal (8, 4) and tried the taf again and updated with no problems. I then 
converted the column back to varchar (9) and repeated the process. Still no 
issue. I even reloaded the table in odbc. I then converted back to decimal (8, 
4) and deleted the column to be updated and dragged itback in. Yes, it went to 
qouted value = false, but I cannot seem to break it by changing data types back 
and forth.



I there something I am missing?









  _____

From: Robert Shubert [mailto:[email protected]]
Sent: Tuesday, July 31, 2012 9:14 AM
To: [email protected]
Subject: RE: TeraScript-Talk: O.T. - MSSQL 2008 Changing VarChar to Decimal

As long as each value in the varchar can be cast to a decimal, you’re fine.



I would do these steps:



1)      Add a column to table: temp_col numeric(10,4)

2)      Execute: UPDATE table SET temp_col = CAST(varchar_col AS numeric(10,4))

3)      Verify data

4)      Alter table to remove varchar_col

5)      Alter table to rename temp_col to varchar_col



Also note that this change will likely create some issues with your TAFs. 
Mostly around quoting. In the places where you write to this column (insert and 
update actions) you’ll want to turn off quoting (set Quote Value to False). You 
may also have to re-drag the columns into the various db actions to update the 
column type in the TAFs. I can’t be sure if this will be necessary, but it will 
be obvious in that you’ll get an error as soon as you make the change.



Robert







From: WebDude [mailto:[email protected]]
Sent: Tuesday, July 31, 2012 7:52 AM
To: [email protected]
Subject: TeraScript-Talk: O.T. - MSSQL 2008 Changing VarChar to Decimal



Hey Folks,



Sorry for the off topic question.



I have 2 columns in the DB that need to be converted from a VarChar to Decimal. 
I have noticed in the past that using Alter Table will throw an error if data 
is going to be truncated or cannot be changed. There are probably 250,000 
records and of course I am leery about doing this so I don't mux the data. I am 
planning to copy some of the data to another table to experiment on before 
doing the big change. I assume NULL will stay NULL as other changes have been 
like this. I have changed numeric data before with no problems but this the 
first time converting from a VarChar. There are around 5000 records that I will 
need to "fix" in order to do this before moving forward. Does anyone see any 
problems with doing this this way?



Thanks for any feedback...



  _____

To unsubscribe from this list, please send an email to [email protected] 
with "unsubscribe terascript-talk" in the body.



  _____

To unsubscribe from this list, please send an email to [email protected] 
with "unsubscribe terascript-talk" in the body.



  _____

To unsubscribe from this list, please send an email to [email protected] 
with "unsubscribe terascript-talk" in the body.




----------------------------------------

To unsubscribe from this list, please send an email to [email protected] 
with "unsubscribe terascript-talk" in the body.

Reply via email to