在《水浒传》中，对北宋禁军有八十万的记述。实际上这个数字是夸张成分的。不过，据史料记载，北宋自中后期，一直维持着大约五十万左右的禁军。数量如此庞大的禁军为何无法守卫京师？在这里有必要详细说明一下。
在这里，必须要搞清楚什么是禁军。在很多读者看来，禁军类似于皇帝的羽林军，其实这是错误的。禁军是北宋中央军、正规军的叫法，也称“**上军**”。禁军的职责是“**天子之卫兵，以守京师，备征戍”**。负责保卫皇帝、皇宫及宗室安全的部队在北宋叫“**班直**”，就是我们通常叫的羽林军，这些士兵被称为“**最亲近扈从者**”。入选班直的条件非常严苛，都是身材高大，武艺精强者，北宋皇帝对他们也非常恩宠，班直将士娶妻，皇帝都要亲自接见。另外，班直的身份是世袭的。
禁军建立的时间是宋太祖乾德三年（公元965年），宋太祖下旨**“天下长吏择本道兵骁勇者，籍其名送都下，以补禁旅之阙**”。以后又选“**兵样**”，以木梃作为从地方军中挑选禁军的标准，将精兵调集为禁军。
禁军在宋太祖时约为二十二万，到真宗末年达到四十三万多。班直在宋初有一二千人，到了南宋绍兴年间增长到三千四百余人。北宋前期，禁军分布的情况是一半驻京，一半驻守外地。中期以后，为了对付来自西夏的威胁，将大部禁军调往陕西。陕西禁军由于长年与外敌作战，是北宋的精锐。金军南下时，陕西禁军被金军全歼，北宋政权拿不出像样的部队与金军作战，只能坐以待毙。
宋太祖为了消除五代以来将领称雄一方，威胁皇权的情况，实行“**更戍法**”，就是不改变驻营地，将禁军定期调往其他地方戍守，而且士兵与士兵对调，将领并不随着本部士兵一起到另一个地方驻军，这样一来造成“**兵不知将，将不知兵**”的局面。这种办法虽然消除了武将称霸一方的隐患，但由于士兵与将领之间缺乏沟通和感情联络，彼此之间没有形成熟练的战术体系，对战斗力必然造成削弱。这也是为什么北宋军队战斗力弱的主要原因之一。
南宋建立后，宋高宗虽然不愿看到将领专兵的局面，但为了抗击金军，只能暂时把祖训放下。以张俊、刘光世、韩世忠、岳飞、吴玠、刘琦、张浚等名将为例，都是长期统领一支部队，并拥有相当大的自主权。比如岳飞在平定杨么起义后，就把投降的义军编入自己的部队。这也是为什么南宋军队能抵抗住金军的主要原因。