Pop quiz
Given the following DDL
CREATE TABLE dbo.IntToTime ( CREATE_TIME int );
What will be the result of issuing the following command?
ALTER TABLE dbo.IntToTime ALTER COLUMN CREATE_TIME time NULL;
Clearly, if I'm asking, it's not what you might expect. How can an empty table not allow you to change data types? Well it seems Time and datetime2 are special cases as they'll raise errors of the form
Msg 206, Level 16, State 2, Line 47 Operand type clash: int is incompatible with time
If you're in this situation and need to get the type converted, you'll need to make two hops, one to varchar and then to time.
ALTER TABLE dbo.IntToTime ALTER COLUMN CREATE_TIME varchar(10) NULL; ALTER TABLE dbo.IntToTime ALTER COLUMN CREATE_TIME time NULL;
No comments:
Post a Comment