declare @ID int declare @sql Nvarchar(4000) --改类型 declare @Table_Name varchar(8000)set @Table_Name = 'T_Time_All_Test'--改处理语句 set @sql = 'select top 1 @ID=ID from ' + @Table_Name + ' order by newid()' print @sql exec sp_executesql @sql,N' @ID int out',@id out --改用动态参数传递 print @ID
sp_executesql 的语法参考sql联机帮助
To zjcxc(邹建) set @sql = 'select top 1 ' + @ID + ' ID from ' + @Table_Name + ' order by newid()'--这样是构造一个字符串,不是把@id做为变量放入字符串中,所以还会出现数据类型转换错误那我要该如何写呢,找了好些资料了,实在是不知要该如何写了,能帮个忙么,多谢了
declare @sql Nvarchar(4000) --改类型
declare @Table_Name varchar(8000)set @Table_Name = 'T_Time_All_Test'--改处理语句
set @sql = 'select top 1 @ID=ID from ' + @Table_Name + ' order by newid()'
print @sql
exec sp_executesql @sql,N' @ID int out',@id out --改用动态参数传递
print @ID