是否有任何方法可以在保存时将“all”字符串转换为大写字母

时间:2011-11-03 03:42:27

标签: sql sql-server sql-server-2008 tsql

我需要先将所有字符串转换为大写,然后再将它们写入数据库。有没有办法告诉sql server 2008自动执行此操作?我的意思是,sql server 2008可以在保存时将我的字符串转换为大写吗?或者,我是否必须以编程方式执行此操作?

4 个答案:

答案 0 :(得分:4)

除非您可以更改INSERT和UPDATE,否则您需要一个触发器。

或者,如果您使用存储过程,则可以对参数发出UPPER。

我还会考虑使用区分大小写的排序规则来检查CHECK约束,以确保UPPER(col) = col以防错过任何内容,或至少进行一些常规检查

答案 1 :(得分:1)

尝试:

INSERT INTO <Column NAme> VALUES (Upper('Your Value'));

答案 2 :(得分:1)

一种方法是在表格上设置一个触发器:

create trigger settouppercase
        on mytable
        instead of insert, update
as begin
    delete from mytable where mycolumnid in (select mycolumnid from deleted)

    select mycolumnid, upper(mycolumn) as mycolumn into #upcased from inserted

    insert into mytable(mycolumnid, mycolumn)
    select mycolumnid, mycolumn from #upcased
end

答案 3 :(得分:0)

试试这个:

CREATE TRIGGER ToUpperCase
        ON tblUsers
        AFTER INSERT, UPDATE
AS
BEGIN

    UPDATE  tblUsers
    SET     UserName = UPPER(UserName)
    WHERE   UserId IN (SELECT UserId FROM inserted)

END