UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'
Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.
Нюансы:
1. Мне крайне важно не производить запись, если значение не поменялось.
2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.
Здравствуйте, wildwind, Вы писали:
А>>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал. W>Документацию читать просто лень, или с английским настолько не дружишь?
Ни то, ни другое. ISNULL (который не является правильным ответом) вытеснил из головы IS NULL (который решает задачу). Но добрые люди напомнили.
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'
А>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.
А>Нюансы: А>1. Мне крайне важно не производить запись, если значение не поменялось. А>2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.
Попробуй вот так:
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'blablah') <> 'blablah'
Здравствуйте, SLGLADKOV, Вы писали:
SLG>Здравствуйте, Аноним, Вы писали:
А>>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'
А>>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.
А>>Нюансы: А>>1. Мне крайне важно не производить запись, если значение не поменялось. А>>2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.
SLG>Попробуй вот так: SLG>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'blablah') <> 'blablah'
Это первое, что приходит на ум, и оно не соответствует условиям задачи. Однако, кроме isnull есть is null, и это то, что надо.
Здравствуйте, SLGLADKOV, Вы писали:
SLG>Здравствуйте, Аноним, Вы писали:
А>>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'
А>>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.
А>>Нюансы: А>>1. Мне крайне важно не производить запись, если значение не поменялось. А>>2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.
SLG>Попробуй вот так: SLG>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'blablah') <> 'blablah'
думаю, имелось ввиду так:
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'') <> 'blablah'
Здравствуйте, _d_m_, Вы писали:
___>Здравствуйте, wildwind, Вы писали:
W>>Документацию читать просто лень, или с английским настолько не дружишь?
___>Мастодонт ___>Дока уже давно вся на русском.
Скажу больше: есть даже русские редакции MS SQL Server, начиная еще с 2005-ой версии.