Sql server MATLAB fastinsert误差

Sql server MATLAB fastinsert误差,sql-server,matlab,matlab-table,Sql Server,Matlab,Matlab Table,我在SqlServer数据库中有一个简单的表,simSQLTable。列标题为: index, del_date, name 我在MATLABmytbl中有一个表,其中有一行: num deldate myname --- ------- ------ 1 '07-02-2015 00:00:00.0' 'JenZ' mycolnames = {'index', 'del_date', 'name'}; 我使用的fastinsert如下: fastinsert(con

我在SqlServer数据库中有一个简单的表,
simSQLTable
。列标题为:

index, del_date, name
我在MATLAB
mytbl
中有一个表,其中有一行:

num   deldate  myname
---   -------  ------
1     '07-02-2015 00:00:00.0'  'JenZ'

mycolnames = {'index', 'del_date', 'name'};
我使用的
fastinsert
如下:

fastinsert(conn, 'simSQLTable', mycolnames, mytbl);
但我得到了这个错误:

Error using database/fastinsert (line 90)
Variable fields and insert fields do not match.

如何解决此问题?

fastinsert
查询数据库以获取列的数据类型。这会导致保留关键字出现问题。在mySQL或Transact-SQL中尝试使用反勾号
`
“引用关键字
索引

mySQL:

mycolnames = {'`index`', 'del_date', 'name'}
mycolnames = {'"index"', 'del_date', 'name'}
Transact-SQL:

mycolnames = {'`index`', 'del_date', 'name'}
mycolnames = {'"index"', 'del_date', 'name'}

我认为这里的主要问题是
mycolnames
中的列名属于数据库表,而不是您的MATLAB
mytbl
。它有自己的变量名,由
{num''deldate''myname}
给出,与数据库列名不匹配。从:

要插入的数据,指定为数字矩阵、单元格数组、表格、数据集数组或包含要插入到现有数据库表的所有数据的结构
tablename
。如果
Data
是结构,则结构中的字段名必须匹配
colnames
。如果
Data
是表格或数据集数组,则表或数据集数组中的变量名必须匹配
colnames

要解决此问题,您可以在表中选择以下两种方法,使它们与数据库列名匹配:

mytbl.Properties.VariableNames=mycolnames;
Fastnsert(康涅狄格州,西姆斯克兰特,MyclNames,mytbl);
也可以只插入需要插入的内容:

fastinsert(conn,'simSQLTable',mycolnames,mytbl.Variables);

谢谢。让我试试。而且我刚刚发现我没有写权限。