求教存储过程的参数问题~`

yufish123 2005-03-27 01:36:32
1.表名可以做参数吗?

2.列名可以做参数吗?

想要生成一面的过程,参数要定义?

CREATE PROCEDURE testSelect @fd1 varchar(50),@fd2 varchar(50), @tb_tb varchar
AS
Select @fd1,@fd2 from @tb_tb
GO
...全文
73 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Well 2005-04-20
  • 打赏
  • 举报
回复
1.表名可以做参数吗?
是可以的。但是要用動態語句
declare @tablename varchar(50)]
set @tablename='tablename'
exec('select * from'+@tablename)
2.列名可以做参数吗?
也可以
不過也要用動態語句。
declare @fieldname varchar(50)
set @fieldname=fieldname
exec('select'+@fieldname+'from tablename')
反正用到變量就用動態語句執行
xluzhong 2005-04-20
  • 打赏
  • 举报
回复
1.表名可以做参数吗?
---可以,用动态sql
2.列名可以做参数吗?
---可以,用动态sql

想要生成一面的过程,参数要定义?

CREATE PROCEDURE testSelect
@fd1 varchar(50),
@fd2 varchar(50),
@tb_tb varchar
AS
declare @sql nvarchar(1000)
set @sql='Select '+@fd1+','+@fd2+' from '+@tb_tb
exec(@sql)
GO

xspf 2005-04-20
  • 打赏
  • 举报
回复
列名可以作为参数,表名只能动态执行
exec sp_executesql N'Select @fd1,@fd2 from '+@tb_tb,N'@fd1 varchar(50) @fd2 varchar(50)',@fd1,@fd2
xspf 2005-04-20
  • 打赏
  • 举报
回复
列名可以作为参数,表名只能动态执行
exec sp_executesql N'Select @fd1,@fd2 from '+@tb_tb,N'@fd1 varchar(50) @fd2 varchar(50)',@fd1,@fd2
criedshy 2005-04-20
  • 打赏
  • 举报
回复
搞定
CREATE PROCEDURE testSelect @fd1 varchar(50),@fd2 varchar(50), @tb_tb varchar
AS
declare @SQL VARCHAR(1000)
set @SQL='Select'+' "+@fd1+','+@fd2+' ' from ' '+@tb_tb+''
exec(@SQL)
GO
7271747 2005-04-20
  • 打赏
  • 举报
回复
可以
只是他们的类型是 sysname
也就是说对象名做参数它们的参数类型都是sysname
criedshy 2005-04-20
  • 打赏
  • 举报
回复
这个问题我也在搞..头疼

27,579

社区成员

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

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