【发布时间】:2018-09-03 20:51:34
【问题描述】:
我正在尝试创建一个无需任何外部设置脚本即可设置自己的数据库的程序。我在以编程方式创建 SQL Server 数据库时找到了this question,但它隐含地假设您已经有一个服务器可以连接。
如果我不这样做,我如何以编程方式创建它?
const SERVER_NAME = "MyDbServer";
private DbConnection GetConnection() {
var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
return new SqlConnection(connectionString);
}
public void Test(){
try {
//assume this is valid and calls GetConnection() internally
var _ = Query<int>('select count(*) from USERS', null);
} catch (System.Data.SqlClient.SqlException) {
DO SOMETHING HERE TO CREATE THE SERVER
var conn = GetConnection();
var command = SqlCommand('create database MyDatabase;', conn);
conn.Open();
command.ExecuteNonQuery();
}
我需要在“在这里做些什么来创建服务器”部分输入什么?
编辑: 如标题所述,这是我正在尝试创建的本地服务器。就本问题而言,假设 SQL Server 的 SqlLocalDB 已安装在此计算机上,但不存在具有我要使用的名称的本地服务器。
【问题讨论】:
-
您想使用正确的磁盘布局、备份设置和用户帐户(包括从 C# 程序中的异常处理程序获取许可证)来配置 SQL 服务器实例?
-
我能否谦虚地建议您让您的应用程序支持 SQL Server Compact 版本,并要求没有数据库服务器的用户为 Compact 版本配置连接字符串?然后你可以像这个问题一样创建数据库:stackoverflow.com/questions/1487845/…
-
没有简单的方法来设置 Mssql 数据库,因为需要许多配置。 O 可以建议您尝试使用 docker 和 sql server 2017 映像,如果您有可用的 docker (docs.microsoft.com/en-us/sql/linux/…),如果没有,我会推荐一个安装步骤来“手动”安装服务器,因为创建逻辑在您的代码中创建服务器将非常困难,并且只有在第一次运行时才有优势
-
使用 SqlLite?它不是 SQL 服务器,但它不需要 SQL 服务器。它是您可以使用的文件内数据库。
-
您使用
create选项运行sqllocaldb: docs.microsoft.com/en-us/sql/tools/…?
标签: c# sql-server database