SQL Server CE - 无法在BIT列中插入值

时间:2013-06-16 18:52:50

标签: sql sql-server sql-server-ce-3.5

我在SQL Server CE 3.5中创建了一个小表

以下是表格说明:

ROW_ID NVARCHAR(30),
NAME NVARCHAR(30),
TEST BIT

我正在使用以下查询在表中插入记录:

insert into EMP(ROW_ID, NAME, TEST)
values('123', 'XYZ', TRUE);

但我收到一个奇怪的错误:

  

错误消息:列名无效。 [节点名称(如果有)=,列名称= TRUE]

请帮助我。

提前致谢。

3 个答案:

答案 0 :(得分:17)

而不是truefalse使用10。例如:

insert into EMP(ROW_ID, NAME, TEST)
values('123','XYZ',1);

这适用于SQL Server 2005 bit

  

字符串值TRUE和FALSE可以转换为位值:TRUE转换为1,FALSE转换为0.

你可以尝试一下。如果它适用于CE,则代码('TRUE'为字符串)也可以起作用:

insert into EMP(ROW_ID, NAME, TEST)
values('123','XYZ', 'TRUE');

答案 1 :(得分:4)

没什么好奇的。它的说法是不知道什么是真的。不是已知名称,不是表中的列,因此出现错误消息。

使用1表示true,0表示false。

答案 2 :(得分:0)

否则,您可以尝试这种方式:

  insert into EMP(ROW_ID, NAME, TEST)
  values('123','XYZ',b1);    // b for bit type and 1 is the field value as (true)

or

  insert into EMP(ROW_ID, NAME, TEST)
  values('123','XYZ',0b1);   // 0b for bit type and 1 is the field value as (true)