存储过程能不能实现被查询的表名的参数化???<<<存储过程表名参数化>>>

xyz21cn 2005-07-18 03:10:44

在线等待中....
例如有多个表:
表1,表2,表3....
可否

执行
EXEC 存储过程 "条件1","表名"
...全文
188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengzulin 2005-07-21
  • 打赏
  • 举报
回复
-- =============================================
-- Create procedure basic template
-- =============================================
-- creating the store procedure
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'proc_test'
AND type = 'P')
DROP PROCEDURE proc_test
GO

CREATE PROCEDURE proc_test
@tablename nvarchar,
@where nvarchar
AS
exec (N'SELECT * from '+@tablename+@where)
GO

-- =============================================
-- example to execute the store procedure
-- =============================================
EXECUTE proc_test 'test',' where id >1'
GO

xyz21cn 2005-07-21
  • 打赏
  • 举报
回复

是如何设计一个存储过程,调用该存储过程时,参数用表名?


exec p1 表名
FlyNesta 2005-07-18
  • 打赏
  • 举报
回复
楼上正解!
kylike 2005-07-18
  • 打赏
  • 举报
回复
可以的,使用动态语句,如下:

declare @Table nvarchar(50) , --- 表名
@Where nvarchar(500) --- 条件
exec ('Select * from '+@Table+' ' + @Where)

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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