我的网络应用程序允许更换令牌,因此我的SQL INSERT查询看起来像这样:
INSERT INTO mytable (Col1, Col2, Col3)
VALUES ('[Col1Value]', '[Col2Value]', '[Col3Value]')
网络应用正在使用输入到表单字段的输入替换方括号[Col1Value]
内的内容。
问题是,如果输入字段为空,则此查询仍然只插入' '
空格,因此不会将该字段视为null
我尝试使用SQL的默认值/绑定部分,以便null
的所有列都具有默认值--
但我的查询插入空格' '
正在制作它,因此SQL不会触发默认值操作,它仍然显示空白而不是我想要的默认值--
关于如何解决此问题的任何想法并确保将' '
插入为null
而不是空格或空格,以便它将使用我的默认值{{触发SQL替换null 1}}
答案 0 :(得分:1)
不容易......
您是如何插入值的?如果你从字面上创建这些语句,你就会遇到 SQL注入的危险领域...使用参数!
一种方法可能是通过存储过程插入,另一种方法是而不是TRIGGER ,第三种方法使用事实,字符串长度不计算尾随空白:
SELECT LEN('') --returns 0
,LEN(' ') --returns 0 too
您可以在以下表达式中使用它:
CASE WHEN LEN(@YourInputValue)=0 THEN NULL ELSE @YourInputValue END