按照周礼,天子七庙,也就是天子也只敬七代祖先,但有庙号就一代一代都保留着,没有庙号的,到了一定时间就“亲尽宜毁”,不再保留他的庙,而是把他的神主附在别的庙里。对国家有大功、值得子孙永世祭祀的先王,就会特别追上庙号,以视永远立庙祭祀之意。当时庙号只有四种:创基立业曰“太”(太祖汤、太宗太甲)、功高者曰“高”(高祖王亥、高宗武丁)、世代祭祀曰“世”(世祖盘庚、世宗且甲)、中兴者曰“中”(中宗且乙)。商朝灭亡后,周朝没有延用商朝的庙号制度,只是继续发展了商朝的谥号制度,所以周朝君主有谥号而无庙号,再到始皇帝建立秦朝之后,将庙号连同谥号制度一并废止,原因是“庙号和谥号”的定夺将会形成“子议父、臣议君”的局面。故周朝到秦朝时期,庙号一度被废止了近千年之久。所以秦始皇既没有庙号,也没有谥号,就简简单单的“始皇帝”——所以后世叫“秦始皇”。
西汉以后承袭了庙号这一制度。汉朝对于追加庙号一事极为慎重,不少皇帝因此都没有庙号。历代庙号并无严格规定,早期都是一、两个字,亦非每位皇帝都享有庙号,只有成就突出的帝王才能拥有,尤其是西汉,非有大功大德者不能拥有。刘邦是开国君主,庙号为太祖,谥号为高皇帝。经过东汉光武帝刘秀的删减和重新拟定,西汉皇帝里真正有庙号的只有四个:太祖高皇帝刘邦、太宗孝文皇帝刘恒、世宗孝武皇帝刘彻、中宗孝宣皇帝刘询。东汉有庙号的也只有三人:世祖刘秀、显宗刘庄、肃宗刘炟。东汉的其他几个皇帝:刘肇为穆宗孝和皇帝、刘祜为恭宗孝安皇帝、刘保为敬宗孝顺皇帝、刘志为威宗孝桓皇帝,但这些庙号在孝献帝时被取消。可见早期皇帝干得合格才有庙号,汉朝经历过两次删减庙号,但是皇帝基本都有谥号,所以唐朝以前的皇帝大多称谥号,就是XX帝。
到了魏晋南北朝开始,随着天下动乱、礼崩乐坏,庙号也跟着泛滥了。除了某些亡国之君和政变中被推翻的皇帝外一般都有庙号。在曹魏时,却有三代庙号相继称祖:曹操(武帝)为太祖,曹丕(文帝)为世祖,曹叡(明帝)为烈祖,即所谓“曹氏三祖”是也。曹魏一家子玩坏了庙号,祖严重通胀,都不屑于称宗了。故而唐刘知几《史通·称谓》云:“古者天子庙号,祖有功而宗有德,始自三代,迄于两汉,名实相允,今古共传。降及曹氏,祖名多滥”。意思是两汉时期庙号是名副其实的,庙号“祖”的泛滥始于曹魏。曹叡活着的时候,就迫不及待地自称烈祖明皇帝,被后世嘲笑。明末清初顾炎武《日知录·除去祖宗庙谥》亦有“称祖之滥,始于曹魏之三祖”之议。称宗之情形更滥,顾炎武批评道:“王莽尊元帝庙号高宗,成帝号统宗,平帝号元宗,中兴皆去之。……称宗之滥,始王莽之三宗。”
都说庙号是帝王死后,子孙和臣子给的,在帝王生前是不知道的。那么司马迁的《太史公书》(即《史记》)是在汉武帝刘彻活着的时候写成的,为什么里会用“武帝”称呼刘彻?那是《太史公书》完成后,经后人多次修订。在后人眼里,曾经的“今上”刘彻自然就应该修改为“武帝”。汉朝的谥号有点意思,除了刘邦和刘秀,其他人谥号里都有“孝”字,是因为汉朝以孝治国。再比如谏臣魏征也不知道李世民死后是太宗,那么记录魏徵于贞观十一年(637)写给唐太宗的奏章《谏太宗十思疏》是怎么回事呢?这也不是魏征自己起的题目。这是清嘉庆年间官修唐五代文章总集《全唐文》(全称《钦定全唐文》)给起的标题。
到五胡十六国乱世时期,胡人的后赵、前燕、后秦、西秦等小国,其帝王庙号几乎无不称祖。南朝刘宋也很夸张,搞了高祖、太祖、世祖三个庙号;齐、梁、陈都各搞了两个祖。北魏最厉害,一下子有四个祖。另一个乱世五代十国时期的十国也是如此。到五代时“城头变幻大王旗”,大家都是草头王,天下更易五代九姓十四帝,也没个始受封和始受命啥的,但后梁朱温、后唐李克用、后周郭威等为太祖,而后晋石敬瑭、后汉刘知远等为高祖。
到了唐朝后,庙号滥情尤甚,是皇帝都有庙号,庙号和谥号成为了皇帝的标配。