小编Ral*_*alf的帖子

Firebird 添加具有默认值但不同值的列

我正在尝试向 firebird 表添加一列。该列应该有一个默认值 1,但最初对于已经存在的行,该值应该设置为 0。这应该发生在一个事务中。

我试过

ALTER TABLE MYTABLE ADD MYCOLUMN SMALLINT DEFAULT 1 NOT NULL;
UPDATE MYTABLE SET MYCOLUMN = 0; 
Run Code Online (Sandbox Code Playgroud)

但这在一笔交易中是不允许的,因为更新不会看到新列。我也试过:

ALTER TABLE MYTABLE ADD MYCOLUMN SMALLINT DEFAULT 0 NOT NULL;
ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN SET DEFAULT 1 NOT NULL;
Run Code Online (Sandbox Code Playgroud)

希望该列之后为 0 但它将为 1。

在一笔交易中获得我想要的东西的更多选择?

sql ddl firebird firebird2.5

5
推荐指数
1
解决办法
6626
查看次数

XMLSerializer并使用属性创建XML数组

我正在尝试创建一个可以通过XMLSerializer序列化为XML的类.

目标XML应该看起来像这样

<subject_datas type="array">
    <subject_data>
           ...
    </subject_data>
    <subject_data>
           ...
    </subject_data>
</subject_datas>
Run Code Online (Sandbox Code Playgroud)

问题是subject_datas标记的type属性.我尝试的是将其设计为派生List并附加具有XMLAttribute属性的属性

[XmlRoot(ElementName = "subject_datas")]
public class SubjectDatas : List<SubjectData>
{
    public SubjectDatas (IEnumerable<SubjectData> source)
    {
        this.AddRange(source);
        Type = "array";
    }

    [XmlAttribute(AttributeName = "type")]
    public string Type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是因为类是Collection,所以XMLSerializer将序列化Collection中的对象而不是Collection本身.所以我的Type属性被忽略了:(

c# highrise xmlserializer

2
推荐指数
1
解决办法
1251
查看次数

标签 统计

c# ×1

ddl ×1

firebird ×1

firebird2.5 ×1

highrise ×1

sql ×1

xmlserializer ×1