请教高手动态SQL问题? 我觉得好象没有必要用过程,用select 语句不就解决问题了么??! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是在写一个触发器,我要动态访问inserted某写列的值 例如:我现在获取某列的值使用select @ColValue = 列名 from inserted现在我想把列名作为动态的select @ColValue = @ColName from inserted但是行不通?怎么办? 只能使用exec 来获得 不能直接在语句里加入变量当成字符的 create table aii (id int ,ii int)insert into aii select 1,2gocreate proc proc_aiii@na nvarchar(100),@n int outputasdeclare @sql nvarchar(100)select @sql='select @out='+@na+' from aii'execute sp_executesql @sql,N'@out int output',@n output--rundeclare @out intexecute proc_aiii 'id',@out outputprint convert(varchar(100),@out)不太明白你的意思,你是不是需要根据列命来查询相应的值给你一个例题参考 我写的触发器为什么不对?CREATE TRIGGER [Create_CFDB] ON dbo.测风塔 FOR INSERTASdeclare @colName nvarchar(20)declare @value floatdeclare @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无效” CREATE TRIGGER [Create_CFDB] ON dbo.测风塔 FOR INSERTASdeclare @colName nvarchar(20)declare @value floatdeclare @strSql nvarchar(300)select * into #xx from insertedset @colName = N'类型为float的列名'set @strSql = N'select @outFloat = [' + @colName + N'] from #xx'execute sp_executesql @strSql, N'@outFloat float output', @value output sql server7.0 数据库还原问题 |zyciis| 如何查询出数据库中的全有我分立的表约束 删除相似行2 SQL简单问题,在线等,急,谢谢! 求sql语句:去掉不可见字符 用sql语句按指定时间段分组统计 设置外键查询 通过互联网,VPN方式访问远程服务器安装的sqlserver数据库,这个方案可行吗?有没有更好方案? Trigger中如何获得更新前的数据 为什么在XP里安装不了MS SQL? SQL中可不可以设置定时重新启动服务管理器? 这个能用存储过程解决吗
我现在获取某列的值使用
select @ColValue = 列名 from inserted
现在我想把列名作为动态的
select @ColValue = @ColName from inserted
但是行不通?怎么办?
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)不太明白你的意思,你是不是需要根据列命来查询相应的值
给你一个例题参考
FOR INSERT
ASdeclare @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无效”
FOR INSERT
ASdeclare @colName nvarchar(20)
declare @value float
declare @strSql nvarchar(300)select * into #xx from insertedset @colName = N'类型为float的列名'
set @strSql = N'select @outFloat = [' + @colName + N'] from #xx'
execute sp_executesql @strSql, N'@outFloat float output', @value output