我看见书上和网上诸如:
declare @t int exec sp_executesql N'select @x=count(*) from a' ,N'@x int output',@x=@t outputprint @t请问一下那个大写的"N"代表什么啊?

解决方案 »

  1.   

    N  --Unicode字符Unicode每个字符占用2个字节
      

  2.   

    是把其后的字符串转换为Unicode字符格式
      

  3.   

    谢谢,那它是属于什么?函数?
    有点小疑惑,联机查不到,有没有小文献再小问一下(联机上面的示例):
    DECLARE @IntVariable INT
    DECLARE @SQLString NVARCHAR(500)
    DECLARE @ParmDefinition NVARCHAR(500)/* Build the SQL string once. */
    SET @SQLString =
         N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = @level'
    /* Specify the parameter format once. */
    SET @ParmDefinition = N'@level tinyint'/* Execute the string with the first parameter value. */
    SET @IntVariable = 35
    EXECUTE sp_executesql @SQLString, @ParmDefinition,
                          @level = @IntVariable
    /* Execute the same string with the second parameter value. */
    SET @IntVariable = 32
    EXECUTE sp_executesql @SQLString, @ParmDefinition,
                          @level = @IntVariable
    -END-@parmDefinition是专门有来定义参数的吧?能不能改成其他名字?
    还有,如果有多个参数那么怎么写?
      

  4.   

    @ParmDefinition 参数定义的就是一普通字符串,你可以直接写
    EXECUTE sp_executesql @SQLString, @level tinyint , 
                          @level = @IntVariable 这样没任何问题,写这个参数的目的是让你看的更清楚一点,告诉你这个位置是定义参数的,当然也可以定义多个参数