有没有人知道SQL 的字符串是怎么连接的?
  @a nvarchar (128)
   @b nvarchar (128)
   set a = '123456'
   set b = a + '654321'

解决方案 »

  1.   


    declare @a nvarchar (128) 
    declare @b nvarchar (128) 
    set @a = '123456' 
    set @b = @a + '654321'
    select @b/*
    123456654321(所影响的行数为 1 行)
    */
      

  2.   


    declare  @a nvarchar (128)
    declare  @b nvarchar (128)
      set @a = '123456'
      set @b = @a + '654321'select @b
    --123456654321
      

  3.   

    不行啊..
        我的存储过程是这样的
    CREATE PROCEDURE Pr_XXXX 
    @intMID int,
    @szDbTableName nvarchar(128),
    @strOutErrMsg nvarchar(128) output
    AS
    --得分Table
    declare @count3 int
    declare @szDbTableNameTemp nvarchar(128)
    declare @szDbTableNameScore nvarchar(128)
    select @count3 = count(* ) from NNNA where MID = @intMID
    set @szDbTableNameTemp = @szDbTableName
    --如果没有该表,就动态创建一个
    if (@count3 <= 0 )
    begin set  @szDbTableNameScore  = @szDbTableNameTemp + 'Score'
    if @szDbTableNameScore  = @szDbTableNameTemp
    begin
    Set @strOutErrMsg = '连接得分数表名失败'
    return 0
    end
    --先检查一下这个表是否存在
    if object_id(@szDbTableNameScore) is not null
    begin 
    Set @strOutErrMsg = '得分数据表已经存在'
    --Set @strOutErrMsg =@szDbTableNameScore
    return 0
    end
      

  4.   

    PRINT @szDbTableNameScore 看看
    引号..
      

  5.   

    如果是INT类型的+号表示相加,最好用&表示连接!
      

  6.   

    CREATE PROCEDURE Pr_XXXX 
    @intMID int, 
    @szDbTableName nvarchar(128), 
    @strOutErrMsg nvarchar(128) output 
    AS 
    --得分Table 
    declare @count3 int 
    declare @szDbTableNameTemp nvarchar(128) 
    declare @szDbTableNameScore nvarchar(128) 
    select @count3 = count(* ) from NNNA where MID = @intMID 
    set @szDbTableNameTemp = @szDbTableName 
    --如果没有该表,就动态创建一个 
    if (@count3 <= 0 ) 
    begin set  @szDbTableNameScore  = @szDbTableNameTemp + convert(varchar,score)--这里
    if @szDbTableNameScore  = @szDbTableNameTemp 
    begin 
    Set @strOutErrMsg = '连接得分数表名失败' 
    return 0 
    end 
    --先检查一下这个表是否存在 
    if object_id(@szDbTableNameScore) is not null 
    begin 
    Set @strOutErrMsg = '得分数据表已经存在' 
    --Set @strOutErrMsg =@szDbTableNameScore 
    return 0 
    end