public function getListTableColumnsSQL($table, $database = null)
{
return "SELECT col.name,\n type.name AS type,\n col.max_length AS length,\n ~col.is_nullable AS notnull,\n def.definition AS [default],\n col.scale,\n col.precision,\n col.is_identity AS autoincrement,\n col.collation_name AS collation,\n CAST(prop.value AS NVARCHAR(MAX)) AS comment -- CAST avoids driver error for sql_variant type\n FROM sys.columns AS col\n JOIN sys.types AS type\n ON col.user_type_id = type.user_type_id\n JOIN sys.objects AS obj\n ON col.object_id = obj.object_id\n JOIN sys.schemas AS scm\n ON obj.schema_id = scm.schema_id\n LEFT JOIN sys.default_constraints def\n ON col.default_object_id = def.object_id\n AND col.object_id = def.parent_object_id\n LEFT JOIN sys.extended_properties AS prop\n ON obj.object_id = prop.major_id\n AND col.column_id = prop.minor_id\n AND prop.name = 'MS_Description'\n WHERE obj.type = 'U'\n AND " . $this->getTableWhereClause($table, 'scm.name', 'obj.name');
}