I've got an unexpected problem. I'm making a script to update the schema on a SQL CE database. This won't run:
if not exists
(
Select column_name from information_schema.columns
where column_name = 'TempTestField'
and table_name = 'Inventory_Master_File'
)
Alter table Inventory_Master_File
add TempTestField nvarchar(10) null
I think this is because I'm using stuff that isn't supported in SQL CE. Anyone know how to do this? I've tried rearranging the script and can't get anything to work. I tried "alter table ... where not exists ...".
Note that the "select" part runs fine and also the "alter" part. The problem is "if not exists". I know there are some other postings regarding problems like this using SQL CE but I couldn't find an answer to this particular problem.
Cheers
Mark
I've spent over an hour looking for a solution. I've found many postings asking for help with similar problems but I've still got no idea how to fix it. I really don't want to do this in C# code. I need to do this in a SQL script. I can't believe something this basic is causing so much difficulty :(
It appears that SQL CE does not support any procedural extensions at all; only DDL and DML like from the 1970s.
You will either have to put procedural logic in your application (C# or whatever) or go to an embeddable database with procedural extensions, like SQLite.
I'm not used to CE at all. But in the case I wouldn't have any procedural extensions I simply would fire the ALTER TABLE statement. If the field already exists, you will get an exception. As you have to try ... catch it in either way you simply have to handle this exception separately in your catch phrase ...
just my two cents.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With