【问题标题】:SQL Server CE - Unable to insert values in the BIT columnSQL Server CE - 无法在 BIT 列中插入值
【发布时间】:2013-06-16 18:52:49
【问题描述】:

我在 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]

请帮帮我。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    使用1 和0 代替true 和false。例如:

    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');
    

    【讨论】:

      【解决方案2】:

      这没什么奇怪的。它的意思是不知道什么是TRUE。不是已知名称,也不是表中的列,因此会出现错误消息。

      1 为真,0 为假。

      【讨论】:

        【解决方案3】:

        否则你可以试试这个方法:

          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)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多