本文介绍了与sql server中的Variable with Operator一样的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我存储的
ALTER PROCEDURE [dbo]。[GetDataByLikeFun] @ TblName nvarchar (max), @ FieldName nvarchar (max), @ ValParam nvarchar (max) AS BEGIN 声明 @ TAblE nvarchar (最大); set @ ValParam = ' LIKE'' %' + @ ValParam + ' %' set @ TAblE = ' 选择*从' + @ TblName + ' WHERE' + @ FieldName + @ ValParam exec ( @ TAblE ) END显示错误 消息105,级别15,状态1,行3字符串'%d%'后面的未闭合引号。消息4145,级别15,状态1,行3在预期条件的上下文中指定的非布尔类型的表达式,接近'%d%'。 任何一个人解决了它
解决方案嗯......你考虑过间距吗? 假设@FieldName是'客户',您的@ValParm为'咖啡',您的@TAble变为: 选择*来自MyTable WHERE CustomerLIKE'%咖啡% '
添加空格:
set @ ValParam = ' LIKE''%' + @ ValParam + ' %'成为:
set @ ValParam = ' LIKE''%' + @ ValParam + ' %'alter PROCEDURE [dbo] 。[GetDataByLikeFun] @ TblName nvarchar (max), @ FieldName nvarchar (max), @ ValParam nvarchar (max) AS BEGIN 声明 @ TAblE nvarchar (最大); set @ ValParam = ' LIKE'' %' + @ ValParam + ' %''' set @ TAblE = ' 选择*来自' + @ TblName + ' WHERE' + @ FieldName + @ ValParam exec ( @ TAblE ) END
如果此解决方案有帮助,请将其标记为答案。
my stored
ALTER PROCEDURE [dbo].[GetDataByLikeFun] @TblName nvarchar(max),@FieldName nvarchar(max),@ValParam nvarchar(max) AS BEGIN declare @TAblE nvarchar(max); set @ValParam='LIKE ''%'+@ValParam+'%' set @TAblE = 'Select * From ' + @TblName + ' WHERE ' + @FieldName+@ValParam exec(@TAblE) ENDDisplay Error Msg 105, Level 15, State 1, Line 3 Unclosed quotation mark after the character string '%d%'. Msg 4145, Level 15, State 1, Line 3 An expression of non-boolean type specified in a context where a condition is expected, near '%d%'. any one solved it
解决方案 Um...have you considered spacing? Assume @FieldName is 'Customer', your @ValParm is 'Coffee', and your @TAble becomes: Select * From MyTable WHERE CustomerLIKE '%Coffee%'Add a space:
set @ValParam='LIKE ''%'+@ValParam+'%'Becomes:
set @ValParam=' LIKE ''%'+@ValParam+'%' alter PROCEDURE [dbo].[GetDataByLikeFun] @TblName nvarchar(max),@FieldName nvarchar(max),@ValParam nvarchar(max) AS BEGIN declare @TAblE nvarchar(max); set @ValParam=' LIKE ''%'+@ValParam+'%''' set @TAblE = 'Select * From ' + @TblName + ' WHERE ' + @FieldName+@ValParam exec(@TAblE) ENDPlease mark it as answer, if this solution helps.
更多推荐
与sql server中的Variable with Operator一样
发布评论