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