《水浒》的第六十三回是:宋江兵打北京城,关胜议取梁山泊。宋江为了营救卢俊义、石秀,率军攻打北京城。宋江攻打的北京是现在的北京城吗?现在的北京城在北宋时叫燕京,属于辽国,是燕云十六州的一部分。相比较历史上其他王朝,北宋先天不足,因为缺失了燕云十六州,以至于有些学者认为北宋这个大一统王朝名不副实。燕云十六州又称幽云十六州,是以幽州(今北京)和云州(今山西大同)为中心的十六个州,即今北京、天津北部(海河以北),以及河北北部、山西北部地区。北宋自从宋太宗北伐失败,高粱河身中两箭,驴车逃窜之后,就断绝了收复燕云十六州的希望,他的儿子宋真宗更是在澶渊被辽军吓破了胆,从此以后北宋朝廷只能捏着鼻子和辽国称兄道弟,承认燕云十六州是辽国地盘。
后来女真人建立的金国崛起,邀请北宋夹击辽国,约定一起灭辽国之后,平分辽国国土。这个盟约本来有很多大臣反对,主要理由有二,第一,宋朝和辽国在澶渊之盟后已经是兄弟之邦,两国和平多年,第二,他们对北宋军队孱弱的战斗力也是心知肚明。奈何“收回燕云十六州”就是北宋历代皇帝的理想,是最大的政治正确,当时的道君皇帝宋徽宗梦想收回燕云十六州,立下不世之功,完成祖宗们的梦想,于是同意和金国签订“海上之盟”,夹攻辽国。宋军的战斗力不出意外地拉胯,童贯率领的十万大军被辽国大将耶律大石打得大败,狼狈逃回宋朝境内,但新兴的金国战力惊人,不久辽国还是被金国灭掉,1123年,按照“海上之盟”的约定,北宋拿到了燕京(北京)、涿州、易州、檀州、顺州、景州、蓟州等地方,但讽刺的是,因为北宋在这些地方横征暴敛,因此还爆发了农民起义。仅仅两年后,看穿北宋虚弱本质的金国人南下,重新占据了这些地方。
也就是说北京城属于北宋只有短短两年的时间(1123-1125年),是在《水浒》故事发生之后(方腊灭亡于1121年),因此宋江打下的北京城和现在的北京不是一回事,两者相距四百多公里。北宋建立之后,设置有四京,分别是东京开封府(河南开封)、西京河南府(河南洛阳)、南京应天府(河南商丘)、北京大名府(河北大名县),大名府被称作北京是在1042年,比现在的北京得名早了360多年。将大名府定为陪都的原因是作为首都开封的屏障,是边防重镇,平时屯驻重兵,以抵御辽国骑兵入侵,《水浒》里大名府由当朝宰相蔡京的女婿梁中书镇守,手下有大刀闻达、天王李成、急先锋索超、青面兽杨志等名将,可见朝廷重视程度。
《水浒》里的大名府不仅守御严密,而且城市非常繁华,盛极一时,书里有赞诗:“城高地险,堑阔濠深”、“千百处舞榭歌台,数万座琳宫梵宇”、“千员猛将统层城,百万黎民居上国”,这些其实并不夸张,因为当时的大名府确实是四方商贾云集,城中人口众多,繁华而富裕。大名府城池周长48里,深沟高垒,辽国人看到固若金汤的大名府城之后,便放弃了南下的打算。大名府作为陪都,政治地位很高,因此城中还建有行宫,皇帝会不时前来巡视。
遗憾的是公元1401年(明建文三年),一场洪水彻底摧毁了大名府,整座城池都被掩埋在淤泥之下,巧合的是仅仅两年之后,朱棣“靖难”成功,将自己原先的封地北平改名为北京,准备迁都到此。后来明朝重建了大名府,但规模小得多,也就是现在河北大名县的前身。