ALTER PROCEDURE wap.StoredProcedureGis100Search
@KeyWord varchar(100)
AS
SET NOCOUNT ON;
SELECT PointID, [Text] as FullText
FROM MapTabs
WHERE ([Text] Like @KeyWord ) 1、
exec wap.StoredProcedureGis100Search '联通'2、
exec wap.StoredProcedureGis100Search '联通%'3、exec wap.StoredProcedureGis100Search '%联通%'
4、
exec wap.StoredProcedureGis100Search '中%'

解决方案 »

  1.   

    --直接在查询分析器:
    ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord varchar(100)
    AS
    SET NOCOUNT ON;
    SELECT PointID, [Text] as FullText
    FROM MapTabs
    WHERE ([Text] Like @KeyWord ) 
    go--1、
    exec wap.StoredProcedureGis100Search '联通'--2、
    exec wap.StoredProcedureGis100Search '联通%'--3、
    exec wap.StoredProcedureGis100Search '%联通%'--4、
    exec wap.StoredProcedureGis100Search '中%'
      

  2.   

    这个简单的问题早就想到了,加不加'运行结果都是一样的!只是我单独运行其中的SQL语句却是正确的,这才是我最郁闷的地方!
      

  3.   

    试一试这个:ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord Nvarchar(200)
    AS
    SET NOCOUNT ON
    SELECT PointID, [Text] as FullText
    FROM MapTabs
    WHERE ([Text] Like @KeyWord ) 
    SET NOCOUNT OFF
      

  4.   

    不信请看:
    ----------------------------------
    运行wap."StoredProcedureGis100Search" ( @KeyWord = '中%' ).没有行受影响。
    没有更多的结果。
    (返回 0 行)
    @RETURN_VALUE = 0
    完成 wap."StoredProcedureGis100Search" 运行。
      

  5.   

    ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord varchar(100)
    AS
    SET NOCOUNT ON;
    SELECT PointID, [Text] as FullText
    FROM MapTabs
    WHERE ([Text] Like @KeyWord ) 
    -------------------------------------------
    运行结果:
    1。:
    -------------------------------------------
    运行wap.StoredProcedureGis100Search  '中%'Declare csrRst  Cursor SCROLL for
    SELECT ID FROM table1 for update
      

  6.   

    你没仔细看我写的,你的过程里我把它改成了,varchar(100),你为什么不按我说的放到查询分析器里试?
      

  7.   

    ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord Nvarchar(200)  --变量@KeyWord赋给一个长度
    AS
    SET NOCOUNT ON
    SELECT PointID, [Text] as FullText
    FROM MapTabs
    WHERE ([Text] Like @KeyWord ) 
    SET NOCOUNT OFF执行:
    exec wap.StoredProcedureGis100Search '联通'
    exec wap.StoredProcedureGis100Search '联通%'
    exec wap.StoredProcedureGis100Search '%联通%'
    exec wap.StoredProcedureGis100Search '中%'
      

  8.   

    可以是可以了,只是不要':
    -----------------------------------------
    运行wap."StoredProcedureGis100Search" ( @KeyWord = 联% ).PointID     FullText                                                                                                                                                                                                                                                        
    ----------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
    3004        联通大厦                                                                                                                                                                                                                                                            
    没有更多的结果。
    (返回 1 行)
    @RETURN_VALUE = 0
    完成 wap."StoredProcedureGis100Search" 运行。
    ---------------------------------------------------
    为什么呢?
      

  9.   

    你不给长度,varchar只有一个字节,半个汉子!当然会错
      

  10.   

    那你也要设个最大值。字符串
    char固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。varchar可变长度的非 Unicode 数据,最长为 8,000 个字符。text可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。Unicode 字符串
    nchar固定长度的 Unicode 数据,最大长度为 4,000 个字符。 nvarchar可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。ntext可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。
      

  11.   

    水闸有好几种,The TOP 1 Is YOU!
      

  12.   

    troublemaker023() 不要太无聊了,这里是技术版。大家来学东西的,不是看你在这里胡闹的。
      

  13.   

    先要理解like 的意义:like 联通   没有通配符,所以等于  =联通
    like 联通%  以联通开头的,如 联通大厦
    like %联通% 含有联通的,如 联通大厦、中国联通、中国联通公司
    like %联通  以联通结尾的,如 中国联通如果你只要 含有联通的的功能,可以这样写:ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord varchar
    AS
    SET NOCOUNT ON;
    SELECT PointID, [Text] as FullText
    FROM MapTabs
    WHERE ([Text] Like '%'+@KeyWord+'%' ) 
    这样就可以用
    wap."StoredProcedureGis100Search" ( @KeyWord = 联通 ).
    调用,得到所有含有联通的记录
      

  14.   

    "like 联通   没有通配符,所以等于  =联通" ?????好像不是把!
      

  15.   

    严重同意 Rewiah(乘长风) 
    个人看法
    1、赋值加''才可以
    2、变量长度要设置
    3、加%
      

  16.   

    Rewiah(乘长风)说的没错,我是按那样坐的
    不知道有没有好的办法
      

  17.   

    to:Rewiah(乘长风)那你能说:like '2' 等于 = '2'吗?
      

  18.   

    那你能说:like '2' 等于 = '2'吗?是
      

  19.   

    ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord varchar@KeyWord定义没有长度哈哈
      

  20.   

    那你能说:like '2' 等于 = '2'吗?是
    ???实不敢苟同,看例:
    '2'like'2'---------成立
    '2'='2'------------不陈立
    同吗?
      

  21.   

    将参数 @KeyWord 变量设为1000的字符串,不然,默认为1个字符串长,当然就查询不出
    ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord varchar(1000)
    AS
    SET NOCOUNT ON;
    SELECT PointID, [Text] as FullText
    FROM MapTabs
    WHERE ([Text] Like @KeyWord ) 
      

  22.   

    ============================
    实不敢苟同,看例:
    '2'like'2'---------成立
    '2'='2'------------不陈立
    ============================
    哈哈哈哈,楼主可真有想象力!!!!!!!1
      

  23.   

    什么意思?我用的T-sql,你们用的是什么?有资料上面说的,如果一样,那要Like这个关键字干嘛?
      

  24.   

    ALTER PROCEDURE wap.StoredProcedureGis100Search
    @KeyWord varchar
    AS
    SET NOCOUNT ON;
    SELECT PointID, [Text] as FullText
    FROM MapTabs
    WHERE ([Text] Like '%'+@KeyWord+'%' )