示例#1
0
        /// <summary>
        /// Executes the specified script.
        /// </summary>
        /// <param name="script">The script to execute.</param>
        /// <param name="connectionString">The database connection string.</param>
        public static void ExecuteScripts(Script script, string connectionString)
        {
            ScriptSet scripts = new ScriptSet();

            scripts.Add(script);
            ExecuteScripts(scripts, connectionString);
        }
示例#2
0
        /// <summary>
        /// Load a script from the file system.
        /// </summary>
        /// <param name="file">The file to load.</param>
        /// <param name="scripts">The script set to populate.</param>
        /// <param name="name">The script name.</param>
        public static void LoadScript(FileInfo file, ScriptSet scripts, string name)
        {
            //what we do depends on what type of file we've got
            switch (file.Extension.ToLower())
            {
            //data
            case ".data":
                scripts.Add(new Script(file, ScriptType.TableData, name));
                break;

            //extended table properties
            case ".ext":
                RunOptions.Current.Logger.Log("Ignoring extended property file " + file.FullName, OutputLevel.Reads);
                break;

            //foreign key constraints
            case ".fky":
                scripts.Add(new Script(file, ScriptType.ForeignKey, name));
                break;

            //generic script?
            case ".sql":
                switch (Path.GetExtension(Path.GetFileNameWithoutExtension(file.FullName)))
                {
                case ".data":
                    scripts.Add(new Script(file, ScriptType.TableData, name));
                    break;

                case ".fkey":
                    scripts.Add(new Script(file, ScriptType.ForeignKey, name));
                    break;

                case ".function":
                    scripts.Add(new Script(file, ScriptType.UserDefinedFunction, name));
                    break;

                case ".pkey":
                    scripts.Add(new Script(file, ScriptType.PrimaryKey, name));
                    break;

                case ".proc":
                    scripts.Add(new Script(file, ScriptType.StoredProc, name));
                    break;

                case ".table":
                    scripts.Add(new Script(file, ScriptType.Table, name));
                    break;

                case ".trigger":
                    scripts.Add(new Script(file, ScriptType.Trigger, name));
                    break;

                case ".view":
                    scripts.Add(new Script(file, ScriptType.View, name));
                    break;

                default:
                    scripts.Add(new Script(file, ScriptType.Unknown, name));
                    break;
                }
                break;

            //known files to ignore
            case ".dbp":                     //database project
            case ".log":                     //log file
            case ".scc":                     //source control file
            case ".vspscc":                  //source control file
                RunOptions.Current.Logger.Log("Ignoring non script file " + file.FullName, OutputLevel.Reads);
                break;

            //primary key constraints
            case ".kci":
                scripts.Add(new Script(file, ScriptType.PrimaryKey, name));
                break;

            //stored procs
            case ".prc":
                scripts.Add(new Script(file, ScriptType.StoredProc, name));
                break;

            //table definitions
            case ".tab":                     //table definitions
                scripts.Add(new Script(file, ScriptType.Table, name));
                break;

            //triggers
            case ".trg":
                scripts.Add(new Script(file, ScriptType.Trigger, name));
                break;

            //user defined functions
            case ".udf":
                scripts.Add(new Script(file, ScriptType.UserDefinedFunction, name));
                break;

            //views
            case ".viw":
                scripts.Add(new Script(file, ScriptType.View, name));
                break;

            default:
                RunOptions.Current.Logger.Log("Ignoring unknown file " + file.FullName, OutputLevel.Reads);
                break;
            }
        }