与sql server中的Variable with Operator一样 [英] Like Operator with Variable in sql server

查看:88
本文介绍了与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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆