这条动态sql语句应该怎么写

JsLyn 2017-02-22 09:53:32
在存储过程中需要做这么个操作
select @maxnum=count(*) from @tablename
表名是动态的, 我需要得到maxnum值

...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
JsLyn 2017-02-22
  • 打赏
  • 举报
回复
引用 2 楼 Tiger_Zhao 的回复:
DECLARE @tablename nvarchar(100)
SET @tablename = 'table1'

DECLARE @maxnum int
DECLARE @sql nvarchar(1000)

-- 为了明确区分内外变量的关系,用了不同的命名,其实可以用相同的命名的
SET @sql = N'select @max_num=count(*) from '+@tablename
EXEC sp_executesql @sql ,
                   N'@max_num int OUTPUT',
                   @max_num = @maxnum OUTPUT

SELECT @maxnum
哦 @sql 声明为nvarchar才对 已解决 谢谢
JsLyn 2017-02-22
  • 打赏
  • 举报
回复
引用 2 楼 Tiger_Zhao 的回复:
DECLARE @tablename nvarchar(100)
SET @tablename = 'table1'

DECLARE @maxnum int
DECLARE @sql nvarchar(1000)

-- 为了明确区分内外变量的关系,用了不同的命名,其实可以用相同的命名的
SET @sql = N'select @max_num=count(*) from '+@tablename
EXEC sp_executesql @sql ,
                   N'@max_num int OUTPUT',
                   @max_num = @maxnum OUTPUT

SELECT @maxnum
create procedure  getdata1
as
begin
	declare @maxnum int, @tablename varchar(30), @sql varchar(256)
	set @tablename='test'
	set @sql = N'select @max_num=count(*) from ' + @tablename 
	exec sp_executesql @sql,N'@max_num int output',@max_num=@maxnum output
	print @maxnum
end
消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行
过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
Tiger_Zhao 2017-02-22
  • 打赏
  • 举报
回复
DECLARE @tablename nvarchar(100)
SET @tablename = 'table1'

DECLARE @maxnum int
DECLARE @sql nvarchar(1000)

-- 为了明确区分内外变量的关系,用了不同的命名,其实可以用相同的命名的
SET @sql = N'select @max_num=count(*) from '+@tablename
EXEC sp_executesql @sql ,
N'@max_num int OUTPUT',
@max_num = @maxnum OUTPUT

SELECT @maxnum
二月十六 版主 2017-02-22
  • 打赏
  • 举报
回复
CREATE PROC [dbo].[ttt] ( @tablename  VARCHAR(200) )
AS
    BEGIN
	DECLARE @str NVARCHAR(MAX)
	SET @str = ' DECLARE  @maxnum INT
    SELECT @maxnum=count(*)  from  ' + @tablename+'
	select @maxnum'
	EXEC(@str)
 END
 

34,593

社区成员

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

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