2011-11-03 31 views
0

我需要將所有字符串轉換爲大寫,然後才能將它們寫入數據庫。有什麼辦法可以告訴sql server 2008自動執行此操作嗎?我的意思是,sql server 2008可以在保存時將我的字符串轉換爲大寫字母嗎?或者,我必須以編程方式進行嗎?有沒有什麼辦法在保存時將所有字符串轉換爲大寫

+2

爲了什麼需求?不區分大小寫的校對工作? –

+0

@OMG小馬:我的顧客有點難,他想要。我正在使用CI整理,但這不是他想要的。 – lontivero

回答

1

嘗試:

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

除非你可以改變你的INSERT和UPDATE,你需要一個觸發。

或者如果您使用存儲過程,則可以在參數上發出UPPER。

我還考慮請與區分大小寫的檢驗約束,以確保UPPER(col) = col過於萬一你錯過任何東西,或至少一些常規檢查

做到這一點是通過把一個觸發器在桌子上
+0

是的,看起來。這對我來說不是一個好的方式,但是謝謝你,現在我知道沒有其他辦法了。再次感謝你。 – lontivero

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 
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 
相關問題