我正在使用Dynamic SQL创建一个将要执行的'SELECT'SQL语句.在我正在创建的SQL语句中,我想使用'LIKE'运算符,但因为它使用了引号'',它与'SELECT'语句开头使用的引号相冲突.
SET @sql = 'SELECT * FROM LogTable WHERE Application LIKE ' + @ApplicationName + ' ;'
Run Code Online (Sandbox Code Playgroud)
假设'@ApplicationName = TestApp',上面的动态SQL'@sql'变量将生成以下SQL语句:
SELECT * FROM LogTable WHERE Application LIKE TestApp ;
Run Code Online (Sandbox Code Playgroud)
这会导致错误,因为"TestApp"周围不存在引号.如何在动态SQL中创建引号,允许使用"LIKE"运算符?如何创建下面的SQL语句:
SELECT * FROM LogTable WHERE Application LIKE 'TestApp' ;
Run Code Online (Sandbox Code Playgroud) 我在MVC Web App中有一个更新类,用于从前端更新字段.这会调用数据库上的过程来更新表中的单元格.(注意:此列可以接受NULL值)
如果我在我的C#代码中设置它,那么它会工作,因为它检查是否在前端传递NULL并用空字符串替换它(空格也可以工作):
update.Value = dataModel.Value == null ? string.Empty : dataModel.Value;
Run Code Online (Sandbox Code Playgroud)
但是,当我查询数据库表时,它不是在单元格中设置NULL值而只是一个空白.如何通过C#代码将NULL值传递给过程?