Example #1
0
        protected override bool CheckIsSystemObject(ScriptNameObjectBase dbobject)
        {
            var o = dbobject as Table;
            if (o == null)
                return true;

            return o.Schema.Equals("sys") || o.Name.Equals("dtproperties") || o.Name.Equals("sysdiagrams");
        }
        protected override bool CheckIsSystemObject(ScriptNameObjectBase dbobject)
        {
            var o = dbobject as UserDefinedFunction;
            if (o == null)
                return true;

            return o.Schema.Equals("sys") || o.Name.Equals("fn_diagramobjects");
        }
Example #3
0
        protected override bool CheckIsSystemObject(ScriptNameObjectBase dbobject)
        {
            var o = dbobject as Schema;
            if (o == null)
                return true;

            return Array.BinarySearch(SystemSchemaNames, o.Name) > -1 || o.Name.StartsWith("db_");
        }
Example #4
0
        protected override bool CheckIsSystemObject(ScriptNameObjectBase dbobject)
        {
            var o = dbobject as View;
            if (o == null)
                return true;

            return o.Schema.Equals("sys") || o.Schema.Equals("INFORMATION_SCHEMA");
        }
        protected override bool CheckIsSystemObject(ScriptNameObjectBase dbobject)
        {
            var o = dbobject as StoredProcedure;
            if (o == null)
                return true;

            return o.Schema.Equals("sys") || o.Name.StartsWith("dt_") ||
                   (o.Schema.Equals("dbo") && o.Name.StartsWith("sp_"));
        }
Example #6
0
        protected Base(IScriptable scriptable, ScriptNameObjectBase nameElement)
        {
            if (scriptable == null)
            {
                throw new ArgumentNullException("scriptable");
            }
            if (nameElement == null)
            {
                throw new ArgumentNullException("nameElement");
            }
            if (scriptable != nameElement)
            {
                throw new ArgumentException("Both supplied parameters should be same object");
            }

            _nameElement = nameElement;
            _scriptable = scriptable;
        }
Example #7
0
        /// <summary>
        ///   Recursively scripts all objects in the collection while walking the dependency tree to ensure
        ///   child or parent objects are dropped/created appropriately
        /// </summary>
        protected virtual void RecurseScript(Server server, 
                                             StringCollection output,
                                             ScriptNameObjectBase dbobject, 
                                             ScriptingOptions scriptOptions,
                                             ScriptEntity entity,
                                             bool parents)
        {
            if (dbobject == null || entity == null)
                return;

            LogMessage("Checking {0} '{1}'", dbobject.GetType().Name, dbobject.Name);

            if (CheckIsSystemObject(dbobject) || entity.HasBeenScripted || !Filter.IsMatch(dbobject.Name))
                return;

            entity.HasBeenScripted = true;

            var dependencies = parents ? entity.EntitiesWhichIDependOn : entity.EntitiesWhichDependOnMe;

            foreach (var dependencyEntity in dependencies)
            {
                if (dependencyEntity != entity &&
                    dependencyEntity.HasBeenScripted == false)
                {
                    RecurseScript(server,
                                  output,
                                  GetObjectByName(dependencyEntity.Schema, dependencyEntity.Name),
                                  scriptOptions,
                                  dependencyEntity,
                                  parents);
                }
            }

            LogMessage("Scripting {0} '{1}'", dbobject.GetType().Name, dbobject.Name);

            var scriptOutput = ((IScriptable)dbobject).Script(scriptOptions);
            var entries = new string[scriptOutput.Count + 1];
            scriptOutput.CopyTo(entries, 0);
            entries[entries.Length - 1] = "GO";
            output.AddRange(entries);
        }
Example #8
0
 protected abstract bool CheckIsSystemObject(ScriptNameObjectBase dbobject);