请教高手动态SQL问题?

SolidEst 2003-10-09 03:07:19
我想编写一个储存过程,有两个参数,
一个为输入参数表示列名
一个为输出参数表示第一个参数中指定的列的具体值
该如何实现?
...全文
44 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
SolidEst 2003-10-11
  • 打赏
  • 举报
回复
谢谢!
pengdali 2003-10-11
  • 打赏
  • 举报
回复
CREATE TRIGGER [Create_CFDB] ON dbo.测风塔
FOR INSERT
AS

declare @colName nvarchar(20)
declare @value float
declare @strSql nvarchar(300)

select * into #xx from inserted

set @colName = N'类型为float的列名'
set @strSql = N'select @outFloat = [' + @colName + N'] from #xx'
execute sp_executesql @strSql, N'@outFloat float output', @value output
SolidEst 2003-10-09
  • 打赏
  • 举报
回复
我写的触发器为什么不对?

CREATE TRIGGER [Create_CFDB] ON dbo.测风塔
FOR INSERT
AS

declare @colName nvarchar(20)
declare @value float
declare @strSql nvarchar(300)

set @colName = N'类型为float的列名'
set @strSql = N'select @outFloat = [' + @colName + N'] from inserted'
execute sp_executesql @strSql, N'@outFloat float output', @value output

我的目的是将名为@colName的列的值赋给@value

运行时出现错误“对象名inseted无效”
aierong 2003-10-09
  • 打赏
  • 举报
回复
create table aii (id int ,ii int)
insert into aii select 1,2
go
create proc proc_aiii
@na nvarchar(100),@n int output
as
declare @sql nvarchar(100)
select @sql='select @out='+@na+' from aii'
execute sp_executesql @sql,N'@out int output',@n output
--run
declare @out int
execute proc_aiii 'id',@out output
print convert(varchar(100),@out)



不太明白你的意思,你是不是需要根据列命来查询相应的值
给你一个例题参考
realgz 2003-10-09
  • 打赏
  • 举报
回复
只能使用exec 来获得 。。。不能直接在语句里加入变量当成字符的
SolidEst 2003-10-09
  • 打赏
  • 举报
回复
是的,在触发器里
realgz 2003-10-09
  • 打赏
  • 举报
回复
是在触发器里吗?
SolidEst 2003-10-09
  • 打赏
  • 举报
回复
例如:
我现在获取某列的值使用
select @ColValue = 列名 from inserted
现在我想把列名作为动态的
select @ColValue = @ColName from inserted
但是行不通?怎么办?
SolidEst 2003-10-09
  • 打赏
  • 举报
回复
是在写一个触发器,我要动态访问inserted某写列的值
SilverSands 2003-10-09
  • 打赏
  • 举报
回复
而且一个列回有很多行数据,楼主要什么样的列值!
问题不够清楚!!!
SilverSands 2003-10-09
  • 打赏
  • 举报
回复
我觉得好象没有必要用过程,用select 语句不就解决问题了么??!

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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