尝试从C#代码运行脚本SQL时System.Data.SqlClient.SqlException

时间:2015-02-16 08:52:16

标签: c# sql sql-server sql-server-2008 sql-server-2012

我已经安装了SQL Server 2012 Express。我正在使用它和Server 2008 Express进行一些测试。

2008年,一切都好。但是到2012年,我遇到了一些麻烦。

我在c#app中使用它,代码如下:

t = server.ConnectionContext.ExecuteNonQuery("SELECT * FROM sys.server_principals");

上面一行中的查询只是我完成的测试,在我需要的脚本出错之后。

但是,这也会出现同样的错误: MODIFY FILE失败。指定的大小小于或等于当前大小。但为什么?我在周围看到这个错误发生在关于日志的某些事情......或者没有?

为什么我收到此错误?登录数据是正确的。这是一个新安装,所以我以sa登录(然后脚本将创建一个新用户)。

相同的脚本与SQL Server 2008 Express完美配合。我不明白为什么2012年就是这样......我错过了什么?此外,我使用相同的参数从命令行安装2008和2012:

/q /hideconsole /action=Install /features=SQL /instancename=SQLEXPRESS 
/securitymode=SQL /sapwd=xxx /enableranu=1 /sqlsvcaccount="NT Authority\Network Service" 
/AddCurrentUserAsSqlAdmin /IAcceptSqlServerLicenseTerms  
/skiprules=RebootRequiredCheck

无论如何,我想运行的脚本是(但是,正如我所说,上面的简单SQL也会导致错误):

IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = ****')
    CREATE LOGIN [icaddb] 
       WITH PASSWORD = '****', DEFAULT_DATABASE = [master],   
       DEFAULT_LANGUAGE = [us_english], CHECK_EXPIRATION = OFF, CHECK_POLICY = ON
GO

EXEC sys.sp_addsrvrolemember @loginame = ****', @rolename = N'sysadmin'
GO

编辑:

enter image description here

1 个答案:

答案 0 :(得分:0)

问题在于:

CREATE DATABASE [IN4MATICSystemSCRIPT_TEST2] 
GO
ALTER DATABASE IN4MATICSystemSCRIPT_TEST2 MODIFY FILE 
( NAME = N'IN4MATICSystemSCRIPT_TEST2' , SIZE = 8384KB , MAXSIZE =     UNLIMITED, FILEGROWTH = 1024KB )
GO
ALTER DATABASE IN4MATICSystemSCRIPT_TEST2 MODIFY FILE 
( NAME = N'IN4MATICSystemSCRIPT_TEST2_log' , SIZE = 24384KB , MAXSIZE =     2048GB , FILEGROWTH = 10%)
GO

解决了删除这些行的问题。