Есть ли способ преобразовать все строки в верхний регистр, когда они сохранены - PullRequest
0 голосов
/ 03 ноября 2011

Мне нужно преобразовать все строки в верхний регистр, прежде чем записать их в базу данных. Есть ли способ сказать, что SQL Server 2008 сделать это автоматически? Я имею в виду, может ли sql server 2008 преобразовывать мои строки в верхний регистр при их сохранении? Или я должен делать это программно?

Ответы [ 4 ]

4 голосов
/ 03 ноября 2011

Если вы не можете изменить свои ВСТАВКИ и ОБНОВЛЕНИЯ, вам понадобится триггер.

Или, если вы используете хранимые процедуры, вы можете ввести UPPER для параметров.

Я бы такжеРассмотрите ограничения CHECK с учетом регистра с учетом регистра, чтобы убедиться, что UPPER(col) = col также в случае, если вы что-то пропустили, или хотя бы некоторые регулярные проверки

1 голос
/ 03 ноября 2011

Один из способов сделать это, положив триггер на стол:

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
1 голос
/ 03 ноября 2011

попробовать:

INSERT INTO <Column NAme> VALUES (Upper('Your Value'));
0 голосов
/ 03 ноября 2011

Попробуйте это:

CREATE TRIGGER ToUpperCase
        ON tblUsers
        AFTER INSERT, UPDATE
AS
BEGIN

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

END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...