为什么两列之间的`+`不会产生错误

时间:2019-03-11 14:33:10

标签: sql-server sql-server-2014

看下面的简单查询

var process = new Process();
            var startInfo = new ProcessStartInfo
            {
                WindowStyle = ProcessWindowStyle.Normal,
                FileName = "cmd.exe",
                RedirectStandardInput = true,
                UseShellExecute = false
            };

            process.StartInfo = startInfo;
            process.Start();

            process.StandardInput.WriteLine("cd C://users/%username%/downloads");
            process.StandardInput.WriteLine("del /f Secci*");

这将产生11行,其中3列符合预期

现在查看此查询

select u.UserID,
       u.UserFirst,
       u.UserLast
from   tblUser u

这将产生完全相同的结果。
select u.UserID, u.UserFirst, + u.UserLast from tblUser u UserFirst都是varchar列,但是由于两列之间有一个UserLast,因此sql server将不会对其进行合并。

但是我希望sql服务器在第二个查询中返回错误,为什么它不产生错误?

编辑
如果我尝试减号,那我会得到一个错误

comma
  

运算符数据类型varchar对减号运算符无效。

0 个答案:

没有答案