创建数据库和表
我必须创建一个数据库,然后在创建的数据库内创建一个表。创建数据库和表
我已经连接到我的连接字符串主,但我想添加连接,并创建表时我刚才初始目录中创建的新的数据库名称。
这是我
string conn = "SERVER=BRIAN-PC\\SQLEXPRESS; Initial Catalog=master; user id =sa; Password=kagiso";
String str = "CREATE DATABASE IF NOT EXIST PSAHoldings ON PRIMARY"
+ "(NAME = PSAHoldings_Data,"
+ "FILENAME = 'C:\\PSAHoldings.mdf'',"
+ "SIZE = 2MB, FILEGROWTH =10%)"
+ "LOG ON (NAME = PSAHoldings_Log,"
+ "FILENAME = 'C:\\PSAHoldingsLog,idf',"
+ "SIZE = 1MB,"
+ "FILEGROTH = 10%)";
SqlConnection connection = new SqlConnection(conn);
connection.Open();
try
{
//SqlCommand to create database
SqlCommand cmd = new SqlCommand(str, connection);
cmd.ExecuteNonQuery();
MessageBox.Show("DataBase was successfully created", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
string connect = "Data Source=Esther-PC\\SQLEXPRESS; Initial Catalog=PSAHoldings; user id =sa; Password=kagiso";
string table = "CREATE TABLE IF NOT EXIST t_original (" +
"empId varChar(10) NOT NULL PRIMARY KEY," +
"paycode varChar(10) NOT NULL," +
"amount int NOT NULL," +
")";
SqlConnection con = new SqlConnection(connect);
con.Open();
SqlCommand createTable = new SqlCommand(table, con);
createTable.ExecuteNonQuery();
}
}
catch (SqlException sqlEx)
{
MessageBox.Show(sqlEx.ToString(), "Exception Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
connection.Close();
con.Close();
}
当我跑我不断收到异常错误的应用程序。
的异常错误读取它说:System.Data.SqlClient.SqlException(0x80131904): Incorrect synax near the keyword 'IF'. expression of non-boolean type specified in a context where a condition is expected, near 'PSAHoldings', Unclosed quotation mark after the character string 'Size=1mb, filegrowth=10%)'.
我不认为有这样的代码CREATE DATABASE IF NOT EXIST
- 找不到它的任何提及在MSDN: https://msdn.microsoft.com/en-us/library/ms176061.aspx
试试这个。
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'PSAHoldings')
CREATE DATABASE PSAHoldings ON PRIMARY
(NAME = PSAHoldings_Data,
FILENAME = 'C:\\PSAHoldings.mdf',
SIZE = 3MB, FILEGROWTH =10%)
LOG ON (NAME = PSAHoldings_Log,
FILENAME = 'C:\\PSAHoldingsLog.idf',
SIZE = 1MB,
FILEGROWTH = 10%)
(注意一些其他错误类型的固定也改变文件大小3MB,因为我有一个错误,它需要至少3MB)
“CREATE DATABASE IF NOT EXIST” - 它是MySql的语法:)他在他的问题中使用了MySql标签,但他使用的是SqlExpress - 奇怪的... – MajkeloDev 2015-03-31 10:20:51
真 - 我看到C#和Sql,我的眼睛必须跳过MySql ... – colmde 2015-03-31 10:22:54
我还没有用MySql很多,因为我仍然是一个学习者,我认为MySql和Sql有相同的语法 – Esther 2015-03-31 10:32:40
CREATE DATABASE PSAHoldings ON PRIMARY
(NAME = PSAHoldings_Data,
FILENAME = 'C:\\PSAHoldings.mdf',
SIZE = 2MB, FILEGROWTH =10%)
LOG ON (NAME = PSAHoldings_Log,
FILENAME = 'C:\\PSAHoldingsLog,idf',
SIZE = 1MB,
FILEGROWTH = 10%)
-
第一蓝色突出显示尝试 通过这样的系统对象搜索数据库
IF NOT EXISTS /那么你创建数据库的脚本放在这里/
红色高亮我看到两个单引号出现,应该是1单(其中name = N'PSAHoldings'选择的名字从sys.databases中)报价
检查是否表已经存在
IF NOT EXISTS(SELECT * FROM sys.objects中WHERE的object_id = OBJECT_ID(N '[DBO]。[bbr_categories]')和类型( N'U'))
/您创建表脚本放在这里/
粘贴例外这里... – MajkeloDev 2015-03-31 09:48:05
什么做的异常* *说? – 2015-03-31 09:48:13
@MarcGravell我在编辑代码时粘贴了它 – Esther 2015-03-31 10:03:49