예제 #1
0
        /// <summary>
        /// Script create statements for metadata object
        /// </summary>
        private static string ScriptAsCreate(
            IBindingContext bindingContext,
            ConnectionInfo connInfo,
            ObjectMetadata metadata)
        {
            Scripter         scripter = new Scripter(bindingContext.ServerConnection, connInfo);
            StringCollection results  = null;

            if (metadata.MetadataType == MetadataType.Table)
            {
                results = scripter.GetTableScripts(metadata.Name, metadata.Schema);
            }
            else if (metadata.MetadataType == MetadataType.SProc)
            {
                results = scripter.GetStoredProcedureScripts(metadata.Name, metadata.Schema);
            }
            else if (metadata.MetadataType == MetadataType.View)
            {
                results = scripter.GetViewScripts(metadata.Name, metadata.Schema);
            }

            StringBuilder builder = null;

            if (results != null)
            {
                builder = new StringBuilder();
                foreach (var result in results)
                {
                    builder.AppendLine(result);
                    builder.AppendLine();
                }
            }
            return(builder != null?builder.ToString() : null);
        }
        /// <summary>
        /// Not yet implemented
        /// </summary>
        private static string ScriptAsDelete(
            IBindingContext bindingContext,
            ConnectionInfo connInfo,
            ObjectMetadata metadata)
        {
            Scripter         scripter = new Scripter(bindingContext.ServerConnection, connInfo);
            StringCollection results  = null;
            ScriptingOptions options  = new ScriptingOptions();

            options.ScriptDrops = true;
            switch (metadata.MetadataTypeName)
            {
            case ("Table"):
                results = scripter.GetTableScripts(metadata.Name, metadata.Schema, options);
                break;

            case ("View"):
                results = scripter.GetViewScripts(metadata.Name, metadata.Schema, options);
                break;

            case ("StoredProcedure"):
                results = scripter.GetStoredProcedureScripts(metadata.Name, metadata.Schema, options);
                break;

            case ("Schema"):
                results = scripter.GetSchemaScripts(metadata.Name, metadata.Schema, options);
                break;

            case ("Database"):
                results = scripter.GetDatabaseScripts(metadata.Name, metadata.Schema, options);
                break;

            default:
                results = null;
                break;
            }
            StringBuilder builder = null;

            if (results != null)
            {
                builder = new StringBuilder();
                foreach (var result in results)
                {
                    builder.AppendLine(result);
                    builder.AppendLine();
                }
            }
            return(builder != null?builder.ToString() : null);
        }