Beispiel #1
0
        public void CreateTriggers(SqlConnection conn)
        {
            string cur_db_name = null;

            try
            {
                cur_db_name = BingoSqlUtils.ExecStringQuery(conn, "SELECT DB_NAME()");
                BingoSqlUtils.ExecNonQueryNoThrow(conn, "USE {0}", id.DatabaseName(conn));

                string bingo_db_schema = cur_db_name + "." + bingo_schema;

                string   full_name      = id.FullTableName(conn);
                object[] trigger_params = new object[] { null,
                                                         full_name, id_column, data_column, bingo_db_schema, id.table_id, id.database_id };

                trigger_params[0] = GetTriggerName("Insert", conn, cur_db_name);
                string insert_trigger = String.Format(resource.OnInsertTrigger, trigger_params);
                BingoSqlUtils.ExecNonQuery(conn, "{0}", insert_trigger);

                trigger_params[0] = GetTriggerName("Delete", conn, cur_db_name);
                string delete_trigger = String.Format(resource.OnDeleteTrigger, trigger_params);
                BingoSqlUtils.ExecNonQuery(conn, "{0}", delete_trigger);

                trigger_params[0] = GetTriggerName("Update", conn, cur_db_name);
                string update_trigger = String.Format(resource.OnUpdateTrigger, trigger_params);
                BingoSqlUtils.ExecNonQuery(conn, "{0}", update_trigger);
            }
            finally
            {
                if (cur_db_name != null)
                {
                    BingoSqlUtils.ExecNonQueryNoThrow(conn, "USE {0}", cur_db_name);
                }
            }
        }