Table 创建时抛出错误
Error Throw when Table Creation
在我的应用程序中,我使用以下代码通过 vb.net 创建了一个 SQL Server Compact table:
Dim connStringCS As String = "Data Source= Test.sdf; LCID= 1033;
Case Sensitive=true"
Dim xconn As New SqlCeConnection(connStringCS)
xconn.Open()
Dim xcmd As New SqlCeCommand()
xcmd.Connection = xconn
xcmd.CommandText = "CREATE TABLE datalog(schema_oid binary NOT
NULL,tablename ntext NOT NULL, " _
& " refno nvarchar(30) NOT NULL, lastupdated datetime NOT NULL,
status nvarchar(1) NOT NULL , " _
& " PRIMARY KEY (schema_oid,tablename,refno)) "
xcmd.ExecuteNonQuery()
我收到一个错误
Long value data type cannot be indexed
我做错了什么?
如何解决?
我认为问题在于您在主键中使用了 tablename ntext
列 - 不要这样做!不要将这么长的列放入主键中!这真是个坏主意。
使用 INT
或 BIGINT
或类似的东西 - 而不是三列的组合,中间有一个 ntext
....
如何解决? 只是不要将 ntext
列放在索引中 - 正如错误中明确指出的那样...
在我的应用程序中,我使用以下代码通过 vb.net 创建了一个 SQL Server Compact table:
Dim connStringCS As String = "Data Source= Test.sdf; LCID= 1033;
Case Sensitive=true"
Dim xconn As New SqlCeConnection(connStringCS)
xconn.Open()
Dim xcmd As New SqlCeCommand()
xcmd.Connection = xconn
xcmd.CommandText = "CREATE TABLE datalog(schema_oid binary NOT
NULL,tablename ntext NOT NULL, " _
& " refno nvarchar(30) NOT NULL, lastupdated datetime NOT NULL,
status nvarchar(1) NOT NULL , " _
& " PRIMARY KEY (schema_oid,tablename,refno)) "
xcmd.ExecuteNonQuery()
我收到一个错误
Long value data type cannot be indexed
我做错了什么?
如何解决?
我认为问题在于您在主键中使用了 tablename ntext
列 - 不要这样做!不要将这么长的列放入主键中!这真是个坏主意。
使用 INT
或 BIGINT
或类似的东西 - 而不是三列的组合,中间有一个 ntext
....
如何解决? 只是不要将 ntext
列放在索引中 - 正如错误中明确指出的那样...