create PROCEDURE leftA 
@strSource varchar(4000),@intNum int,
@returnvalue varchar(10) output
AS
 set @returnvalue= left(@strSource,@intNumdeclare @m varchar(10)
exec lefta 'dddd',2,@m output'dd'

解决方案 »

  1.   

    left函数的含义就是从左侧开始返回n 个字符啊,
    你想要什么效果?
      

  2.   

    @strSource varchar 
    //你没有定义长度
      

  3.   

    CREATE PROCEDURE leftA 
    @strSource varchar,@intNum int,
    @returnvalue varchar(10) output
    AS
     set @returnvalue= left(@strSource,@intNum)declare @m varchar(10)
    exec lefta'123',3,@m outputSELECT @m
    ------结果为123
      

  4.   

    select left('123456789',5)
    --取5位
      

  5.   

    CREATE PROCEDURE leftA 
    @strSource varchar,@intNum int,
    @returnvalue varchar(10) output
    AS
     set @returnvalue= left(@strSource,@intNum)declare @m varchar(10)
    exec lefta'123',3,@m outputSELECT @m
    ------结果为123
    大力你能得到这个结果吗?是不是有什么选项阿? Transact-SQL 参考  
    char 和 varchar
    固定长度 (char) 或可变长度 (varchar) 字符数据类型。char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。注释
    如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。
      

  6.   

    上面讲默认长度为 1 阿declare @a varchar
    select @a='abcd'
    select @a这样得语句在我的机器上得到的结果为:
    'a'