我想问问,动态SQL语句能直接返回成变量吗?
我想问问,动态SQL语句能直接返回成变量吗?
/****** Object: Stored Procedure dbo.a_a Script Date: 2004-9-3 18:49:19 ******/
CREATE procedure a_a
as
declare @i tinyint
declare @SQL Varchar(1000)
Select @SQL='select '+convert(char(2),@i)+'=count(*) from a'
print @SQL
exec(@SQL)
select @i
GO
这样是错误的,我想知道为什么是错的?
问题点数:20、回复次数:3Top
1 楼zjcxc(邹建)回复于 2004-09-04 12:27:54 得分 20
/****** Object: Stored Procedure dbo.a_a Script Date: 2004-9-3 18:49:19 ******/
CREATE procedure a_a
as
declare @i tinyint
declare @SQL NVarchar(1000) --注意修改了定义
Select @SQL='select @i=count(*) from a'
print @SQL
exec sp_executesql @SQL,N'@i tinyint out',@i out
select @i
GO
Top
2 楼w18ily(再回首,西门吹沙(学习网络编程))回复于 2004-09-04 12:38:59 得分 0
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
/****** Object: Stored Procedure dbo.a_a Script Date: 2004-9-3 18:49:19 ******/
ALTER procedure a_a
as
declare @i tinyint
declare @SQL nVarchar(1000)
Select @SQL='select @i=count(*) from a'
print @SQL
execute sp_executesql @SQL,N'@i tinyint output',@i output
select @i
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
exec a_aTop
3 楼w18ily(再回首,西门吹沙(学习网络编程))回复于 2004-09-04 12:39:31 得分 0
我刚才在看这个帖子,呵呵,谢谢邹建
http://community.csdn.net/Expert/topic/3337/3337818.xml?temp=.9693262Top




