首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果输入为空,则T-SQL插入空

问如果输入为空,则T-SQL插入空
EN

Stack Overflow用户
提问于 2017-07-16 19:48:55
回答 1查看 2.2K关注 0票数 0

我的web应用程序允许令牌替换,因此我的SQL查询如下所示:

代码语言:javascript
复制
INSERT INTO mytable (Col1, Col2, Col3)
VALUES ('[Col1Value]', '[Col2Value]', '[Col3Value]')

web应用程序正在用输入到表单字段中的输入替换方括号[Col1Value]中的内容。

问题是当输入字段为空时,此查询仍在插入' ',仅为空空间,因此该字段不被视为null。

我试图使用SQL的默认值/绑定部分,以便所有属于null的列都具有默认值--,但让查询插入空格' '使其不触发默认值操作,并且仍然显示为空白,而不是我想要的--默认值

任何关于如何解决这个问题的想法,并确保' '作为一个null插入,而不是一个空格或空空间,这样它就会触发SQL,用我的默认值--替换null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-16 22:21:50

没有容易的事..。

您是如何插入值的?如果您真的创建了这些语句,那么您就会发现SQL注入的危险字段.使用参数!

一种方法可能是通过存储过程插入,另一种方法是代替触发器,第三种方法使用的事实是,字符串长度不计算尾随空格:

代码语言:javascript
复制
SELECT LEN('')   --returns 0
      ,LEN('  ') --returns 0 too

您可以在这样的表达式中使用它:

代码语言:javascript
复制
CASE WHEN LEN(@YourInputValue)=0 THEN NULL ELSE @YourInputValue END
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45132720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档