Link to home
Start Free TrialLog in
Avatar of labops
labopsFlag for United States of America

asked on

in MSSQL, how can i retrieve accepted values as list equivalent to MySQL ENUM values? PHP preferred

I wish to (in PHP) dynamically retrieve a list of acceptable/available values for a column in a MSSQL database, for a field which has a Check Constraint to try to get functionality similar to MySQL ENUM data type.

Is there an easier way to do this?  with MySQL it's apparently quite simple (see code).  MSSQL has a string for the Check Constraints and takes a lot of effort to get to in the schema.

from the site http://dev.mysql.com/doc/refman/5.0/en/enum.html :
This is an extremely simple way to get the options from an enum into an array, here called $arryEnum
 
<?php
$result=mysql_query("SHOW COLUMNS FROM <table> LIKE '<column>'");
if( mysql_num_rows( $result ) > 0 )
{
   $row=mysql_fetch_row($result);
   preg_match_all("/'(.*?)'/", $row['Type'], $matches);
   $arryEnum= $matches[1];
}
?> 
 
The important bit is the regexp, which just matches anything in apostrophes.

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of racek
racek
Flag of Sweden image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of labops

ASKER

Nice.   That gets a little closer, I see the check constraint but not the parameters I'd set.  I was able to find the information from joining two information_schema tables.
Is there a better way to go about this from the start?  It sure would be nice to have that ENUM :(