How to execute .sql file using powershell?

powershell, powershell-module, sql, sql-server

Solution

Try to see if SQL snap-ins are present:

get-pssnapin -Registered

Name        : SqlServerCmdletSnapin100
PSVersion   : 2.0
Description : This is a PowerShell snap-in that includes various SQL Server cmdlets.

Name        : SqlServerProviderSnapin100
PSVersion   : 2.0
Description : SQL Server Provider

If so

Add-PSSnapin SqlServerCmdletSnapin100 # here lives Invoke-SqlCmd
Add-PSSnapin SqlServerProviderSnapin100

then you can do something like this:

invoke-sqlcmd -inputfile "c:\mysqlfile.sql" -serverinstance "servername\serverinstance" -database "mydatabase" # the parameter -database can be omitted based on what your sql script does.

Problem

I have a .`sql` file. I am trying to pass connection string details through a Powershell script and invoke an `.sql` file. I was searching and came up with a cmdlet related to `Invoke-sqlcmd`. While I was trying to find a module corresponding to SQL, I did not find any one in my machine. Should I install anything in my machine (the machine already has SQL Server Management Studio 2008 R2) to get the modules or is there any easy way to execute `.sql` files using Powershell?

Original source