We pre-create our SharePoint content databases in SQL, so we can distribute database files among disks and tune some parameters on the SQL Server side. Then we convert the SQL databases into SharePoint content databases by issuing a New-SPContentDatabase from a web front end, specifying the name of the existing, newly created SQL database. According to our experience, the cmdlet will not create a database but reuse the existing one, and will proceed to create the SharePoint schema into it. However, I've found no documentation regarding this behavior.

According to documentation, Mount-SPContentDatabase does more or less the same thing, given that the database exists already, which is the case in our context.

The question is, are there any relevant difference between using New-SPContentDatabase and Mount-SPContentDatabase when the target database already exists, and is empty?

Thanks in advance.

2 Answers 2


The New-SPContentDatabase cmdlet creates a new content database and attaches it to the specified Web application.

The Mount-SPContentDatabase cmdlet attaches an existing content database to the farm. If the database being mounted requires an upgrade, this cmdlet will cause the database to be upgraded.

so if you created database in advance, make sure the collation should be as per SharePoint requirement. then you need to mount the db to web application.

here is the blog explain more: http://blog.octavie.nl/index.php/2013/05/29/pre-creating-content-databases-or-not/

  • Yes, that's what the documentation says, but the fact is that New-SPContentDatabase will not create the database if already exists another database in the farm instance. So, as this is the case, at first sight both cmdlets would do the same.
    – Roberto
    Mar 14, 2014 at 10:27

I found an answer to my question, maybe it helps someone. Credits for this answer go to SharePoint MC, who kindly answered to my question on MS Forums:

Create-SPContentDatabase is the base class for Mount-SPContentDatabase.

The additions to the Mount-SPContentDatabase are switches for UpdateUserExperience, and SkipIntegrityChecks.

It calls the base Create-SPContentDatabase for anything else, and only overrides the internal validation in order to set the private fields in the Create-SPContentDatabase that equate to those two switches... so those switches are just set by default in the Create-SPContentDatabase, and Mount just gives you the ability to override those...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.