???????????

lynx800602 2003-08-19 12:10:59
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200)
AS
declare @num int
exec('select'+@num+ ' =select count (*)from'+@tbname)
print @num
GO
编译没问题
执行:exec www 'test'
报错:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '=' 附近有语法错误。


谢谢!
...全文
20 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lynx800602 2003-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200)
AS
declare @num varchar(2000)
declare @sql nvarchar(2000)
set @sql=N'select '+@num+N'=select count (*) from '+@tbname
exec sp_executesql @sql,N'@num int output',@num out
print @sql
print @num
GO
----------------------------
exec www 'test'
没有错误,怎么也没有输出?print 呢?
lynx800602 2003-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200)
AS
declare @num int
declare @sql nvarchar(2000)
set @sql='select @num=select count (*)from'+@tbname
exec sp_executesql @sql,N'@num int output',@num out
print @num
GO
------------------------------------------------------
exec www 'test'
------------------------------------------------------
服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'select' 附近有语法错误。
------------------------------------------------------
谢谢:邹建
zjcxc 元老 2003-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200)
AS
declare @num int
declare @sql nvarchar(2000)
set @sql='select @num=select count (*)from'+@tbname)
exec sp_executesql @sql,'N'@num int output',@num out
print @num
GO
lynx800602 2003-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200)
AS
declare @num int
declare @ss varchar(200)
set @ss=N'select @num = count(*) from '+@tbname
exec sp_executesql @ss ,N'@num int output',@num output
print @num
GO
-------------------------------------------
exec www 'test'
--------------------------------------------
服务器: 消息 214,级别 16,状态 2,过程 sp_executesql,行 7
过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
--------------------------------------------
谢谢:
愉快的登山者


◢◣◢◣◢◣

愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200)
AS
declare @num int
set @ss=N'select @num = count(*) from '+@tbname
exec sp_executesql @ss ,N'@num int output',@num output
print @num


愉快的登山者


◢◣◢◣◢◣
w_jie 2003-08-19
  • 打赏
  • 举报
回复
qa中试试这样看
declare @out int
exec @out= 存储过程名 '表名'
print @out
go
zjcxc 元老 2003-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200),
@num int output
AS
declare @sql nvarchar(2000)
set @sql='select @num=select count (*) from'+@tbname
exec sp_executesql @sql,N'@num int output',@num out
GO


--调用
declare @num int
exec www 'test',@num out
select @num as 结果
lynx800602 2003-08-19
  • 打赏
  • 举报
回复
存储过程中的OUTPUT型参数
在查询分析其中执行时好想不显示
怎么察看output出来的值是不是对的?
lynx800602 2003-08-19
  • 打赏
  • 举报
回复
怎么察看output出来的值是不是对的?
w_jie 2003-08-19
  • 打赏
  • 举报
回复
这是我的

CREATE proc count_tb

@tb_name varchar(50)

as

declare @sql nvarchar(300)
declare @parminfo nvarchar(100)
declare @cnt int
set @sql=N'select @cnt=count(*) from '+@tb_name
set @parminfo=N'@cnt int output'
exec SP_EXECUTESQL @sql,@parminfo, @cnt OUTPUT
return @cnt

GO
lynx800602 2003-08-19
  • 打赏
  • 举报
回复
谢谢各位!
差不多弄好了!
但是我的目的当然不是要把总纪录条数print出来,
而是output出来,但是我不知道怎么察看output出来的值是不是对的
所以只好用print
晴问:怎么察看output出来的值是不是对的?

谢谢!再加30分马上借贴!
谢谢!谢谢!谢谢!谢谢!
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
Create Procedure GetMaxID
@TableName varchar(100), @ID int output
as
begin
declare @sql nvarchar(1000)
set @sql='select @ID = count(ID) from '+@TableName
exec sp_executesql @sql,N'@id int output',@id output
end
txlicenhe 2003-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[www]
@tbname varchar(200)
AS
declare @num varchar(2000)
declare @sql nvarchar(2000)
set @sql='select '+@num+ '=select count (*) from '+@tbname + ' print @num'
Exec(@sql)
GO

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧