dseaver
IS-IT--Management
- Jul 13, 2006
- 467
I created a script that creates a database and all its table in SQL Server 2005 by right-clicking on the db and creating the DB create script and appending to that the script that creates all the tables. When I run it inside of SQL server management studio, the script runs fine and creates the DB. I am trying to run it via a C# program and I get an when creating the DB. I cannot use a SP, so I embed the script in the EXE. Here is the program's code.
and the beginning of the script
and here is the inner-exception on the ExecuteNonQuery line
Why does it work inside of Sql Server, but throw an exception in my program?
Code:
string sqlConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True";
FileInfo file = new FileInfo("C:\\myscript.sql");
string script = file.OpenText().ReadToEnd();
SqlConnection conn = new SqlConnection(sqlConnectionString);
Server server = new Server(new ServerConnection(conn));
server.ConnectionContext.ExecuteNonQuery(script);
and the beginning of the script
Code:
USE [master]
GO
/****** Object: Database [NewDatabaseName] ******/
CREATE DATABASE [NewDatabaseName] ON PRIMARY
( NAME = N'NewDatabaseName', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewDatabaseName.mdf' , SIZE = 35840KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'NewDatabaseName_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewDatabaseName_1.ldf' , SIZE = 11200KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
EXEC dbo.sp_dbcmptlevel @dbname=N'NewDatabaseName', @new_cmptlevel=90
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [NewDatabaseName].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [NewDatabaseName] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [NewDatabaseName] SET ANSI_NULLS OFF
GO
ALTER DATABASE [NewDatabaseName] SET ANSI_PADDING OFF
GO
ALTER DATABASE [NewDatabaseName] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [NewDatabaseName] SET ARITHABORT OFF
GO
ALTER DATABASE [NewDatabaseName] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [NewDatabaseName] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [NewDatabaseName] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [NewDatabaseName] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [NewDatabaseName] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [NewDatabaseName] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [NewDatabaseName] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [NewDatabaseName] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [NewDatabaseName] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [NewDatabaseName] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [NewDatabaseName] SET DISABLE_BROKER
GO
ALTER DATABASE [NewDatabaseName] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [NewDatabaseName] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [NewDatabaseName] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [NewDatabaseName] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [NewDatabaseName] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [NewDatabaseName] SET READ_WRITE
GO
ALTER DATABASE [NewDatabaseName] SET RECOVERY SIMPLE
GO
ALTER DATABASE [NewDatabaseName] SET MULTI_USER
GO
ALTER DATABASE [NewDatabaseName] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [NewDatabaseName] SET DB_CHAINING OFF
USE [NewDatabaseName]
GO
and here is the inner-exception on the ExecuteNonQuery line
Code:
Incorrect syntax near ', FILENAME = N'.
Line 3
Why does it work inside of Sql Server, but throw an exception in my program?