diff --git a/spec/defines/database_spec.rb b/spec/defines/database_spec.rb index cb4235f5..324c17e8 100644 --- a/spec/defines/database_spec.rb +++ b/spec/defines/database_spec.rb @@ -41,9 +41,15 @@ end it_behaves_like 'sqlserver_tsql command' do let(:additional_params) { { - :filespec_filename => 'c:/test/test.mdf', :filespec_name => 'myCreCre', - :log_filename => "c:/test/logfile.ldf", :log_name => "myCrazyLog"} } - let(:should_contain_command) { [/c\:\/test\/logfile\.ldf/] } + :filespec_filename => 'c:/test/test.mdf', :filespec_name => 'myCre-Cre', + :log_filename => "c:/test/logfile.ldf", :log_name => "myCrazy_Log"} } + # Ensure that the parameters are in the TSQL and are correctly escaped + let(:should_contain_command) {[ + /NAME = N'myCre-Cre'/, + /FILENAME = N'c\:\/test\/test\.mdf'/, + /NAME = N'myCrazy_Log'/, + /FILENAME = N'c\:\/test\/logfile\.ldf'/ + ]} end end describe 'collation_name' do diff --git a/templates/create/database.sql.erb b/templates/create/database.sql.erb index 1ed52cc9..3ffdcbdd 100644 --- a/templates/create/database.sql.erb +++ b/templates/create/database.sql.erb @@ -11,7 +11,7 @@ CREATE DATABASE [<%= @db_name %>] CONTAINMENT = <%= @containment %> <% if @filespec_name && @filespec_filename -%> ON ( - NAME = <%= @filespec_name %>, + NAME = N'<%= @filespec_name %>', FILENAME = N'<%= @filespec_filename %>' <% if @filespec_size %>, SIZE = <%= @filespec_size %><% end %> <% if @filespec_maxsize %>, MAXSIZE = <%= @filespec_maxsize %><% end %> @@ -21,7 +21,7 @@ CREATE DATABASE [<%= @db_name %>] <% if @log_name && @log_filename -%> LOG ON ( - NAME = <%= @log_name %>, + NAME = N'<%= @log_name %>', FILENAME = N'<%= @log_filename %>' <% if @log_size %>, SIZE = <%= @log_size %> <% end %> <% if @log_maxsize %>, MAXSIZE = <%= @log_maxsize %><% end %>