SQL脚本异常

sxlxxyssq 2014-01-09 03:11:18
--以下是想在指定时间内获取最小ID栏位值给@id_value变量,但总是报错,请帮忙
declare @id_value bigint
set @id_value=0
set @t_talbe='table1'
declare @sql nvarchar(500)
set @sql = 'select @id_value=min(id) FROM '@t_talbe+' WHERE Time1 > ''2013-7-1 0:00:00'' and Time1 < ''2013-12-1 0:00:00'') '

exec(@sql)

select @id_value
if @@rowcount=0
print 'no data'
else
print @id_value


提示:必须声明标量变量 "@id_value"。
...全文
44 点赞 收藏 3
写回复
3 条回复
唐诗三百首 2014年01月09日
try this,

declare	@id_value bigint
declare @sql nvarchar(4000),@t_talbe nvarchar(50)

set @id_value=0
set @t_talbe=N'table1'
set @sql=N'select @id_value=min(id) from '+@t_talbe+N' where Time1>''2013-7-1 0:00:00'' and Time1<''2013-12-1 0:00:00'' '

exec sp_executesql @sql,N'@id_value bigint output',@id_value=@id_value output

select @id_value
回复 点赞
發糞塗牆 2014年01月09日
select 0=min(id) FROM table1 WHERE Time1 > '2013-7-1 0:00:00' and Time1 < '2013-12-1 0:00:00') 你那句话print出来是这样的,不合理啊
回复 点赞
發糞塗牆 2014年01月09日
DECLARE @id_value BIGINT DECLARE @t_talbe VARCHAR(10) SET @id_value = 0 SET @t_talbe = 'table1' DECLARE @sql NVARCHAR(500) SET @sql = 'select @id_value=min(id) FROM ' + @t_talbe + ' WHERE Time1 > ''2013-7-1 0:00:00'' and Time1 < ''2013-12-1 0:00:00'') ' EXEC(@sql) SELECT @id_value IF @@rowcount = 0 PRINT 'no data' ELSE PRINT @id_value
回复 点赞
发动态
发帖子
应用实例
创建于2007-09-28

1.1w+

社区成员

6.8w+

社区内容

MS-SQL Server 应用实例
社区公告
暂无公告