我正在将SQL语句写入常规Excel工作表(而不是VBA),可以将其从单元格复制并粘贴到SQL Server Management Studio中。
然而,为了使它工作,我需要声明变量(例如@userid)。通常,Excel使用变量没有问题,但是当我将它们放入IF语句时,它告诉我它是一个“无效函数”。
例如,我的SQL查询的一部分如下所示:
="VALUES("&IF(Keys!B5<>"", Keys!B5, "@spid")&", @sid, GETDATE())"
现在我必须在变量周围添加引号。不幸的是,这意味着,当粘贴到SQL Server Management Studio中时,您必须再次删除变量周围的引号,以便将它们识别为变量而不是字符串。这很不方便,因为我的电子表格应该被设计为更快更容易地添加记录。
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
以下是您可以使用的几种可能的解决方法。
'@spid
。用作Range.PrefixCharacter property的单个标记不会添加到连接字符串中。spid
并将 @ 放入公式字符串部分。 ="VALUES(@"&IF(Keys!B5<>"", Keys!B5, "spid")&", @sid, GETDATE())"
\@@
一样\
是一个转义字符,用于制作第一个@ literal。当单元格实际包含@spid
时,这会将值显示为spid
。