declare @sql
set @sql = 'select columnName from tableName where id = 1'
exec(@sql)怎么获得exec的执行结果???????????
返回结果为char(8)
我该怎么获取这个值????????
set @sql = 'select columnName from tableName where id = 1'
exec(@sql)怎么获得exec的执行结果???????????
返回结果为char(8)
我该怎么获取这个值????????
输出参数
declare @num int, @sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls) --如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
declare @ret varchar(1000)
set @sql = N'select @ret = columnName from tableName where id = 1'
sp_executesql @sql,N'@ret varchar(1000) out',@ret out
select @ret
出现这个错误:
服务器: 消息 214,级别 16,状态 2,过程 sp_executesql,行 19
过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
declare @ret varchar(1000)
set @sql = N'select @ret = ISNULL(@ret,'''')+columnName from tableName where id = 1'
sp_executesql @sql,N'@ret varchar(1000) out',@ret out
select @ret
declare @ret nvarchar(1000)
set @sql = N'select @ret = ISNULL(@ret,'''')+columnName from tableName where id = 1'
sp_executesql @sql,N'@ret nvarchar(1000) out',@ret out
select @ret
declare @ret varchar(1000)
set @sql = N'select @ret = ''1'''
exec sp_executesql @sql,N'@ret varchar(1000) out',@ret out
select @ret
我主要是想判断一行中某个字段是否为空值
有其他办法也可以等待。
insert ta select 1,null
insert ta select null,2
declare @sql nvarchar(1000)
declare @ret varchar(1000)
set @sql = N'select @ret = isnull(id,''Null'') from ta where pid = 2'
exec sp_executesql @sql,N'@ret varchar(1000) out',@ret out
select @ret
/*
-------
Null
*/
(1 行受影响)
drop table ta