diff options
Diffstat (limited to 'framework/Data/Common/Mssql/TMssqlMetaData.php')
-rw-r--r-- | framework/Data/Common/Mssql/TMssqlMetaData.php | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/framework/Data/Common/Mssql/TMssqlMetaData.php b/framework/Data/Common/Mssql/TMssqlMetaData.php index 3ff7ac7f..990639af 100644 --- a/framework/Data/Common/Mssql/TMssqlMetaData.php +++ b/framework/Data/Common/Mssql/TMssqlMetaData.php @@ -4,9 +4,8 @@ * * @author Wei Zhuo <weizhuo[at]gmail[dot]com> * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2013 PradoSoft + * @copyright Copyright © 2005-2014 PradoSoft * @license http://www.pradosoft.com/license/ - * @version $Id: TPgsqlMetaData.php 1866 2007-04-14 05:02:29Z wei $ * @package System.Data.Common.Mssql */ @@ -20,7 +19,6 @@ Prado::using('System.Data.Common.Mssql.TMssqlTableInfo'); * TMssqlMetaData loads MSSQL database table and column information. * * @author Wei Zhuo <weizho[at]gmail[dot]com> - * @version $Id: TPgsqlMetaData.php 1866 2007-04-14 05:02:29Z wei $ * @package System.Data.Common.Mssql * @since 3.1 */ @@ -260,5 +258,33 @@ EOD; } return false; } + + /** + * Returns all table names in the database. + * @param string $schema the schema of the tables. Defaults to empty string, meaning the current or default schema. + * If not empty, the returned table names will be prefixed with the schema name. + * @return array all table names in the database. + */ + public function findTableNames($schema='dbo') + { + $condition="TABLE_TYPE='BASE TABLE'"; + $sql=<<<EOD +SELECT TABLE_NAME, TABLE_SCHEMA FROM [INFORMATION_SCHEMA].[TABLES] +WHERE TABLE_SCHEMA=:schema AND $condition +EOD; + $command=$this->getDbConnection()->createCommand($sql); + $command->bindParam(":schema", $schema); + $rows=$command->queryAll(); + $names=array(); + foreach ($rows as $row) + { + if ($schema == self::DEFAULT_SCHEMA) + $names[]=$row['TABLE_NAME']; + else + $names[]=$schema.'.'.$row['TABLE_SCHEMA'].'.'.$row['TABLE_NAME']; + } + + return $names; + } } |