错误提示:必须声明变量 '@tbstr'
目的:通过传递参数选择不同表,再进行处理
CREATE PROCEDURE test
@tbstr varchar(30)=''
AS
DECLARE test_cursor CURSOR FOR
select * from @tbstr
open test_cursor
--'''''
CLOSE test_cursor
DEALLOCATE test_cursor
GO
...全文
22010打赏收藏
关于SQL存储过程的怪问题,请大家帮忙!
错误提示:必须声明变量 '@tbstr' 目的:通过传递参数选择不同表,再进行处理 CREATE PROCEDURE test @tbstr varchar(30)='' AS DECLARE test_cursor CURSOR FOR select * from @tbstr open test_cursor --''''' CLOSE test_cursor DEALLOCATE test_cursor GO
使用临时表变量啊,
CREATE PROCEDURE test
@tbstr varchar(30)=''
AS
create table #t table(c1 int,c2 varchar(50))
declare @sql varchar(1000)
set @sql='select * from '+ @tbstr
into into #t exec @sql
DECLARE test_cursor CURSOR FOR
select * from #t
open test_cursor
--'''''
CLOSE test_cursor
DEALLOCATE test_cursor
GO
不过临时表不推荐用,自己拿主义
问题:在关键字 'exec' 附近有语法错误
CREATE PROCEDURE test
@tbstr varchar(30)=''
AS
DECLARE test_cursor CURSOR FOR
exec('select * from '+ @tbstr)
open test_cursor
--'''''
CLOSE test_cursor
DEALLOCATE test_cursor
GO
CREATE PROCEDURE test
@tbstr varchar(30)=''
AS
DECLARE test_cursor CURSOR FOR
exec('select * from '+ @tbstr)
open test_cursor
--'''''
CLOSE test_cursor
DEALLOCATE test_cursor
GO