我已经安装了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
编辑:
答案 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
解决了删除这些行的问题。