【发布时间】:2015-02-16 08:52:15
【问题描述】:
我已经安装了 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
编辑:
【问题讨论】:
-
您是否尝试过从 SQL Server Management Studio(或类似工具)运行相同的命令?这将表明问题是否与您的程序有关。
-
您的脚本中有任何 ALTER / CREATE DATABASE 吗?
-
是的,创建数据库
标签: c# sql sql-server sql-server-2008 sql-server-2012