select @strsql='select @nam=Emp_Name from User_List where Emp_ID='''+@empid+''''
exec sp_executesql @strsql,N'@nam varchar(10) output',@name output
exec sp_executesql @strsql,N'@nam varchar(10) output',@name output
sp_executesql我自己也執行過,不過沒有加output屬性,我按照你那樣修改以後,跟我原來執行報同樣的錯誤:
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'. 按照你那樣修改的語句如下:
declare @strsql varchar(100),@empid varchar(15),@name varchar(10)
select @empid='0000001983'
select @strsql='select @name=Emp_Name from User_List where Emp_ID='''+@empid+''''
exec sp_executesql @strsql,N'@name varchar(10) output',@name output
print @name
select @empid='0000001983'
select @strsql=N'select @name=Emp_Name from User_List where Emp_ID='''+@empid+''''
exec sp_executesql @strsql,N'@name varchar(10) output',@name output
print @name
你不如直接把STRSQL定义成NVARCHAR, 如果字符串对接,就不要一直加'N'了
-----------------有道理
謝謝兩位,散分!