隋开皇三年(公元583年),朝廷在议事中谈到京师的粮仓空虚,万一降水旱之灾将会措手不及。因而隋文帝诏命在蒲、陕、虢、熊、伊、洛、郑、怀、邵、卫、汴、许、汝等水边的十三州募集运米的丁壮;还在卫州设置黎阳仓,在洛州设置河阳仓,在陕州设置常平仓,令丁壮转相输进粮食。这样,可以把关东及汾、晋一带的粮食利用水路运到京师附近,满足不时之需。后来因为渭水泥沙过多,过往粮船往往搁浅,船工苦不堪言,所以文帝又命宇文恺率领民工,开凿了一道长达三百余里的广通渠。渠自大兴城起,东至潼关,不仅使运粮的水路得以畅通,而且有利于各州水旱之地开仓赈粮。
隋文帝
但是,天下州县发生灾荒的地方太多,官仓仍难以满足救灾的需求。度支尚书长孙平便上书云:“臣闻国以民为本,民以食为命,劝农重粮,是先王的制度。古时耕耘三年,要把一年的收获积存起来,栽作九年,必有三年收获的储备,因此即使遇水灾旱灾,而百姓面无菜色,这都是由于训导有方,先行储备的缘故。去年大旱,关内缺食少粮,陛下运来山东的粮食,设置常平仓之官,开仓赈灾,普救饥民,这是无与伦比的大恩大德。不过,治国之道应作长远打算,请陛下勒令各州剌史、县令全力劝导百姓储备粮食。”文帝颇以为然,就采纳了他的建议,在各地设立了义仓。
所谓“义仓”,就是地方公共储粮备荒的粮仓,如果设在乡社,就叫“社仓”。具体做法是每年秋季各家百姓拿出一石以下的粟麦,集中储存起来,并且自行经营管理,如逢凶年,便开仓发放。至于每家拿出多少,要看贫富程度之别。各州各县由此而有了自己的粮食储备,也减轻了朝廷的负担。其后关中地区连年大旱,青、兖、许、曹、亳、陈、仁、谯、豫、郑、洛、伊、颍、邳等州又闹水灾,百姓饥馑,哀鸿遍野,文帝便命苏威等人分道开仓赈灾,社仓对救济当地灾民起到了一定作用。
开皇十五年(公元595年),贮粮民间的义仓大都出现了费损现象,文帝于是下诏道:“设置义仓本来是为防备水旱之灾,但庶民百姓不作长远打算,轻率地损坏了义仓,使存粮乏绝。北部诸州与其他地方不同,云、夏、长、灵、盐、兰、丰、鄯、凉、甘、瓜等州义仓的杂粮,均要纳归本州。如有旱灾缺粮之人,可先供应杂粮及陈米。”第二年,又诏命秦、叠、成、康、武、文、芳、宕、旭、洮、岷、渭、纪、河、廓、豳、陇、泾、宁、原、敷、丹、延、绥、银、扶等州社仓,均设置于本县,社仓比照上中下三等税收粮,上等人家交粮不超过一石,中等人家不超过七斗,下等人家不超过四斗。其后山东连年阴雨,诸州均遇水灾。开皇十八年,文帝派人率水工前往治理,疏川导滞,对于断粮绝食的人家,开仓赈救,前后用去五百余万石谷。同时免去该地的租税,此后其地连续几年获得了好收成。
(《隋书·食货志》、《隋书·长孙平传》)