我有一个15列(其中10个字符串值)和约50000行的表。
它含有大量的空字符串值...我搜索,如果有我可以通过表名称为它遍历所有的值,如果一个查询就等于空,则更新为NULL ..如何更新表中的所有空字符串字段为空?
0
A
回答
2
这是一个基于表格的简单方法。只需传递表名即可。你也可以创建一个姐妹进程来循环思想表名,并在while循环中调用这个proc来处理循环逻辑中的每个表。
CREATE PROC setNullFields
(@TableName NVARCHAR(100))
AS
CREATE TABLE #FieldNames
(
pk INT IDENTITY(1, 1) ,
Field NVARCHAR(1000) NULL
);
INSERT INTO #FieldNames
SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName
DECLARE @maxPK INT;
SELECT @maxPK = MAX(PK) FROM #FieldNames
DECLARE @pk INT;
SET @pk = 1
DECLARE @dynSQL NVARCHAR(1000)
WHILE @pk <= @maxPK
BEGIN
DECLARE @CurrFieldName NVARCHAR(100);
SET @CurrFieldName = (SELECT Field FROM #FieldNames WHERE PK = @pk)
-- update the field to null here:
SET @dynSQL = 'UPDATE ' + @TableName + ' SET ' + @CurrFieldName + ' = NULLIF('+ @CurrFieldName+ ', '''')'
EXEC (@dynSQL)
SELECT @pk = @pk + 1
END
3
UPDATE mytable
SET col1 = NULLIF(col1, ''),
col2 = NULLIF(col2, ''),
...
+0
是任何其他办法让它不写列名,因为我想它applly多个表 – 2010-12-13 19:04:30
+0
也许你可以使用INFORMATION_SCHEMA找出列,这适用于和动态生成SQL。 – 2010-12-13 21:42:23
相关问题
- 1. 如何在表中将所有空字符串更改为NULL?
- 2. 的WebAPI jsonFormatter如何更改空字符串值空字符串
- 3. 如何将字段更新为空值?
- 4. 如何从表中选择非空(不空)的所有字段
- 5. 字符串更改为空
- 6. 空白表中的所有字段
- 7. 为字段返回空字符串SQL
- 8. ModelState.IsValid假为空字符串字段
- 9. 如何将空字符串转换为空字符串json.net
- 10. 如何区分pltcl中的空字符串和空字符串?
- 11. 字符串为空或空
- 12. MongoDB:更新所有文档中的字符串字段
- 13. 在Tcl中识别为空双字符串的空字符串
- 14. 字符串不为空,空或空字符串
- 15. 如何验证字段是否为GORM的空字符串?
- 16. 列表中有空白的字符串?
- 17. 如果其他字段为空,则将字段更新为空或删除行
- 18. 表中的空字段比空字段更好?
- 19. SQL如何删除所有的ASCII字符(空白字段输入后空白)
- 20. 在对象中将空字符串转换为空字符串
- 21. Xpages空字符串或空字符串
- 22. 如何从字符串中删除所有符号和空格?
- 23. 删除Rails中字符串的所有空格字符
- 24. android-jackson将空字段值作为空字符串
- 25. 更新SQL表中的所有字段
- 26. 如何将空字符串更新为oracle Clob
- 27. 将MSSQL中的所有非数字字符替换为空字符串
- 28. 只更新非空字段
- 29. 更新一个空字段
- 30. 如何在jackson json空字符串中序列化为空字符串
这是非常好的,但如果我有名为“ID”的标识列,它将产生错误“无法更新标识列ID”。“ – 2010-12-15 03:16:10