与sql server中的Variable with Operator一样

编程入门 行业动态 更新时间:2024-10-24 12:28:06
本文介绍了与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一样

本文发布于:2023-07-16 23:04:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1126860.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:server   sql   Operator   Variable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!