System.Data.SqlClient.SqlException 当尝试从 C# 代码 运行 脚本 SQL
System.Data.SqlClient.SqlException when try to run script SQL from C# code
我已经安装了 SQL Server 2012 Express。我正在用它和 Server 2008 Express 做一些测试。
2008年,一切正常。但是到了2012年,我遇到了一些麻烦。
我在我的 C# 应用程序中使用它,代码如下:
t = server.ConnectionContext.ExecuteNonQuery("SELECT * FROM sys.server_principals");
上面一行中的查询只是我做过的一个测试,在脚本之后我需要得到错误。
但是,这也会得到同样的错误:修改文件失败。指定大小小于或等于当前大小。但为什么?我看到周围发生了这个错误,当对日志进行了一些操作时......或者没有?
为什么会出现这个错误?登录数据正确。这是一个新安装,所以我以 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
编辑:
问题是这样的:
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
已解决删除这些行的问题。
我已经安装了 SQL Server 2012 Express。我正在用它和 Server 2008 Express 做一些测试。
2008年,一切正常。但是到了2012年,我遇到了一些麻烦。
我在我的 C# 应用程序中使用它,代码如下:
t = server.ConnectionContext.ExecuteNonQuery("SELECT * FROM sys.server_principals");
上面一行中的查询只是我做过的一个测试,在脚本之后我需要得到错误。
但是,这也会得到同样的错误:修改文件失败。指定大小小于或等于当前大小。但为什么?我看到周围发生了这个错误,当对日志进行了一些操作时......或者没有?
为什么会出现这个错误?登录数据正确。这是一个新安装,所以我以 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
编辑:
问题是这样的:
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
已解决删除这些行的问题。