存储过程中:
declare @a varchar(500)
declare @sql nvarchar(4000)
set @sql='select @a=a from 表'
execute sp_executesql @sql出现了@a没有声明,如何解决啊!
declare @a varchar(500)
declare @sql nvarchar(4000)
set @sql='select @a=a from 表'
execute sp_executesql @sql出现了@a没有声明,如何解决啊!
解决方案 »
- 字符串如何比大小
- 网站在局域网测试是好的,上传就出错
- ~~~~~~~~ 查询数据库问题~~~~~~~~~~
- 菜鸟问题“System.Data.SqlClient.SqlConnection”并不包含“open”的定义
- 哪位有asp.net+C#开发网络硬盘的资料?
- 在别的机子上安装自己的.net网站,提示安装成功,访问时却无法找到虚拟目录--404错误!
- 各位朋友,来帮个忙!先谢谢了!
- 在.net+Win2003中打不开WEB项目的问题,急!提示如下....
- 新做DIV+CSS的网站,请大家给点建议
- 脚本打印gridview表格
- 在DataGride中有些字段用图片显示怎么做?
- 请教这样一个功能的实现 可能大多企业程序中用的比较多
我刚接触存储结构,也不怎么懂,不过我这一点看不明白,是不是你@a赋值有错误
declare @sql nvarchar(4000)
set @sql='select @a=a from 表'
execute sp_executesql @sql,N'@a varchar(500) output',@a output
declare @sql nvarchar(4000)select @a = a from 表
set @sql = @a
execute sp_executesql @sql
drop procedure [dbo].[up_test]
GO
create procedure up_Test
@aa varchar(500)as
declare @sql nvarchar(4000)
set @sql='select top 10 '+@aa+' from news '
execute (@sql)GOup_test 'news_title'
select @a=actorID from Assigner
exec (@sql)
PRINT @a这样是可以的declare @a varchar(500)
declare @sql nvarchar(4000)
set @sql=select @a=actorID from Assigner'
exec (@sql)
PRINT @a这样就不行了,看来包含在字符串中的SQL语句中的变量与字符串外的变量是不通用的,将其改为declare @a varchar(500)
declare @sql nvarchar(4000)
set @sql='declare @a varchar(500);select @a=actorID from Assigner;PRINT @a'
exec (@sql)就是可行的,这句在字符串外声明了@a的变量,在字符串中也声明了@a变量,但是两者并不冲突,充分说明了以上的结论“包含在字符串中的SQL语句中的变量与字符串外的变量是不通用的”,
declare @b varchar(500)
declare @sql nvarchar(4000)
set @sql='select @a=a,@b=b from 表 where id=1'
execute sp_executesql @sql
select @a,@b
我的目的是要得到@a,@b两个值.vivianfdlpw() 的方法可行,可以得到一个值,不得如何要两个参数如何写啊
execute sp_executesql @sql,N'@a varchar(500) output',@a output
这是一种方式,不会有错
declare @sql nvarchar(4000)
set @sql='declare @a varchar(500) select @a=xh from b198'
execute sp_executesql @sql这是一种方式
declare @a varchar(500)
declare @sql nvarchar(4000) exec Test1 @a output
--这里可以得到@a的值,
print @a
create procedure Test1
@a varchar(500) output
as
set @a = (select top 1 xh from b198)