Замените пустые поля varchar пустой строкой для всей базы данных - PullRequest
0 голосов
/ 14 июня 2011

Я перестраиваю унаследованную программу для клиента ... база данных относительно хорошо спроектирована, единственное, что меня не волнует, это все значения null varchar ... (лично мне все равно, передать этомой клиентский код ...)

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

Интересно, знает ли кто-нибудь из вас, кто знает, как работают парни и девушки SQL (foreach) в столбце varchar в db?

Я знаю, что должен быть способ ... PS MSSQL 2008r2 DB

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Лично я считаю плохой идеей заменять null пустой строкой.

Но вы просили об этом, поэтому здесь это

UPDATE table1 SET field1 = '' WHERE field1 IS NULL

Другой вариант - решить это в ваших утверждениях select:

SELECT coalesce(field1, '') as field1_excl_nulls FROM table1 

Это заменит null в выводе с пустыми строками, при этом все еще оставляя нулевое значение в базе данных.

1 голос
/ 14 июня 2011

Для этого вы можете построить динамический оператор SQL:

  declare @sSQl nvarchar(max)=''
SELECT  
@sSQl=@sSQl+'UPDATE ['+TABLE_NAME+ '] SET ['+COLUMN_NAME+']='''''+' WHERE ['+COLUMN_NAME+ '] IS NULL'+CHAR(13)
 FROM  INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE '%CHAR%'

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