示例#1
0
        internal static string GetCreateSchemaForTableCommand(MetaTable table)
        {
            StringBuilder sb    = new StringBuilder();
            List <string> parts = new List <string>(SqlIdentifier.GetCompoundIdentifierParts(table.TableName));

            // table names look like this in Yukon (according to MSDN):
            //     [ database_name . [ schema_name ] . | schema_name . ] table_name
            // ... which means that either way, the schema name is the second to last part.

            if ((parts.Count) < 2)
            {
                return(null);
            }

            string schema = parts[parts.Count - 2];

            if (String.Compare(schema, "DBO", StringComparison.OrdinalIgnoreCase) != 0 &&
                String.Compare(schema, "[DBO]", StringComparison.OrdinalIgnoreCase) != 0)
            {
                sb.AppendFormat("CREATE SCHEMA {0}", SqlIdentifier.QuoteIdentifier(schema));
            }
            return(sb.ToString());
        }