Как SQL Server удаляет пробелы? - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть следующее ограничение ...

ALTER TABLE [dbo].[table1]  WITH CHECK ADD  CONSTRAINT [CK_No_Spaces] CHECK  ((charindex(' ',[mobile])=(0)))

Если я запускаю следующее в Management Studio, произойдет сбой.

UPDATE table1 SET mobile = '1 2 3'

Если я выполню тот же запрос из приложения, такой, что запрос появляется в профилировщике, а пробелы находятся в строке, он автоматически удаляет их.

Как это возможно?

Он выполняется в моей промежуточной базе данных, но не включаетсямоя локальная база данных разработчиков.

РЕДАКТИРОВАТЬ: Кажется, что промежуточная база данных не вызывает исключение. И обновление не происходит в конце концов.

1 Ответ

1 голос
/ 30 сентября 2019

, кажется, вы пытаетесь обновить свой столбец 'mobile', чтобы ограничить значения только разрешенными пробелами.

, используя этот, позволит '1 2 3'

ALTER TABLE [dbo].[table1]  WITH CHECK ADD  CONSTRAINT [CK_No_Spaces] CHECK  ((charindex(' ',[mobile])>(0)))

, используя этот, ограничит '1 2 3'

ALTER TABLE [dbo].[table1]  WITH CHECK ADD  CONSTRAINT [CK_No_Spaces] CHECK  ((charindex(' ',[mobile])=(0)))

Сначала вам нужно проверить свою промежуточную и локальную базы данных.

select count(1) from table1 where charindex(' ',[mobile])>0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...