我看见书上和网上诸如:
declare @t int exec sp_executesql N'select @x=count(*) from a' ,N'@x int output',@x=@t outputprint @t请问一下那个大写的"N"代表什么啊?
declare @t int exec sp_executesql N'select @x=count(*) from a' ,N'@x int output',@x=@t outputprint @t请问一下那个大写的"N"代表什么啊?
有点小疑惑,联机查不到,有没有小文献再小问一下(联机上面的示例):
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是专门有来定义参数的吧?能不能改成其他名字?
还有,如果有多个参数那么怎么写?
EXECUTE sp_executesql @SQLString, @level tinyint ,
@level = @IntVariable 这样没任何问题,写这个参数的目的是让你看的更清楚一点,告诉你这个位置是定义参数的,当然也可以定义多个参数