与sql server中的Variable with Operator一样 [英] Like Operator with Variable in sql server
本文介绍了与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) END
Display 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) END
Please mark it as answer, if this solution helps.
这篇关于与sql server中的Variable with Operator一样的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文