If I have a Blockchain which consists of few smart contracts. Let's say that the Blockchain consists of 2000 blocks. When a new block is added to the Blockchain then does the smart contract runs on all 2000 + 1 blocks or only the last one?
It would be running on the blockchain.. which is a chain of blocks. So really its running on the whole blockchain network regardless of how many blocks there are.
Although the smart contract never existed until the block which you deployed the smart contract on. For example you deployed a smart contract at block 1500 and right now its block 2000. If someone forked that blockchain at block 1499 your smart contract would never exist. But if they forked at block 1500 then your smart contract would exist on the new forked blockchain (look up the Ethereum classic fork. I hope this clears it up for you.