C# 靠近';的语法不正确';。创建表时
我是sqlserver的新手,遇到一个错误:C# 靠近';的语法不正确';。创建表时,c#,sql-server,sql-server-2012,C#,Sql Server,Sql Server 2012,我是sqlserver的新手,遇到一个错误: System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near ')'. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea n breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlCl
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near ')'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea
n breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception
, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObj
ect stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,
TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName,
Boolean async, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSou
rce`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean
asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at KellenTechnology.Program.Main(String[] args) in c:\Users\Mohit\Documents\V
isual Studio 2013\Projects\KellenTechnology\KellenTechnology\Program.cs:line 37
ClientConnectionId:d9ec7a79-87d2-40f9-83f9-dc7b08c05153
此错误原因的代码是下面的连接字符串:
string sqlStatement2 = "CREATE TABLE " + Table2Name + "" +
"(line_id AUTOINCREMENT PRIMARY KEY ," +
"line_full_name CHAR(50) NOT NULL,"+
" network_id INTEGER FOREIGN KEY)";
谁能告诉我这个问题的原因吗?如何修复它?
autoincrement
不是SQL Server关键字。我认为你打算:
string sqlStatement2 = "CREATE TABLE " + Table2Name + "" +
"(line_id int not null identity(1, 1) PRIMARY KEY, " +
"line_full_name CHAR(50) NOT NULL," +
" network_id INTEGER FOREIGN KEY REFERENCES network(network_id))";
此外,
外键
需要表引用。自动增量
不是SQL Server关键字。我认为你打算:
string sqlStatement2 = "CREATE TABLE " + Table2Name + "" +
"(line_id int not null identity(1, 1) PRIMARY KEY, " +
"line_full_name CHAR(50) NOT NULL," +
" network_id INTEGER FOREIGN KEY REFERENCES network(network_id))";
此外,
外键
需要表引用。自动增量
不是SQL Server关键字。我认为你打算:
string sqlStatement2 = "CREATE TABLE " + Table2Name + "" +
"(line_id int not null identity(1, 1) PRIMARY KEY, " +
"line_full_name CHAR(50) NOT NULL," +
" network_id INTEGER FOREIGN KEY REFERENCES network(network_id))";
此外,
外键
需要表引用。自动增量
不是SQL Server关键字。我认为你打算:
string sqlStatement2 = "CREATE TABLE " + Table2Name + "" +
"(line_id int not null identity(1, 1) PRIMARY KEY, " +
"line_full_name CHAR(50) NOT NULL," +
" network_id INTEGER FOREIGN KEY REFERENCES network(network_id))";
另外,
外键
需要一个表引用。外键必须指向某个地方…该查询很容易受到;(@kape123:仅仅因为连接了SQL字符串并不意味着它就容易受到SQL注入的攻击。这取决于Table2Name
变量来自何处。由于这是CREATE table
语句中的表名,所以在这种情况下,OP不能进行参数绑定。外键必须指向somewhere…该查询非常容易受到;(@kape123:仅仅因为连接了SQL字符串并不意味着它就容易受到SQL注入的攻击。这取决于Table2Name
变量来自何处。由于这是CREATE table
语句中的表名,所以在这种情况下,OP不能进行参数绑定。外键必须指向somewhere…该查询非常容易受到;(@kape123:仅仅因为连接了SQL字符串并不意味着它就容易受到SQL注入的攻击。这取决于Table2Name
变量来自何处。由于这是CREATE table
语句中的表名,所以在这种情况下,OP不能进行参数绑定。外键必须指向somewhere…该查询非常容易受到;(@kape123:仅仅因为连接了SQL字符串,并不意味着它就容易受到SQL注入的攻击。这取决于Table2Name
变量来自何处。由于这是CREATE table
语句中的表名,所以在这种情况下,OP不能进行参数绑定。这意味着什么“标识(1,1)”?表示从1开始以增量自动生成主键1@myroman为什么我不能改为使用自动增量呢?这样做有什么错?(当我尝试时,在那一行中给出了错误:靠近“,”的语法不正确)@ajpr…一个是MySQL语法。另一个是SQL Server语法。数据库的工作方式不同。也就是说,执行“identity(1,1)”意味着从1开始以增量自动生成主键1@myroman为什么我不能改为自动递增?我这样做有什么不对?(当我尝试时,它在那一行给出了错误:“,”附近的语法不正确)@ajpr…一个是MySQL语法。另一个是SQL Server语法。数据库做的事情不同。还有它的意思是“identity(1,1)”?这意味着从1开始自动生成主键,并递增1@myroman为什么我不能改为使用AUTOINCREMENT?这样做有什么错?(当我尝试时,它在那一行给出了错误:“,”附近的语法不正确)@ajpr…一个是MySQL语法。另一个是SQL Server语法。数据库做的事情不同。这意味着什么“标识(1,1)”?表示从1开始以增量自动生成主键1@myroman为什么我不能改为使用AUTOINCREMENT?这样做有什么错?(我尝试时在那一行出现了错误:“,”)附近的语法不正确@ajpr…一个是MySQL语法。另一个是SQL Server语法。数据库的做法不同。