当前位置: 代码迷 >> Sql Server >> 求救:动态执行SQL的有关问题
  详细解决方案

求救:动态执行SQL的有关问题

热度:14   发布时间:2016-04-27 15:39:04.0
求救:动态执行SQL的问题
表名动态变化
其中有一段流程是这样的:
1、在表中根据某个条件先判断记录是否存在
2、若存在再继续……

比如
declare   @table   varchar(20)
declare   @sql   varchar(200)
set   @table= 'test1 '
set   @sql= 'select   *   from   '[email protected]+ '   where   条件表达式 '
如果是正常情况可以用:
if   exists(select   *   from   table   where   条件表达式)
来判断记录是否存在
可是现在要执行这个动态语句,并判断是否有记录存在,该如何写呢?
因为   if   exests(exec(@sql))   是行不通的
求大侠指教
小弟刚刚接触TSQL编程



------解决方案--------------------
把if [email protected]
------解决方案--------------------
try

declare @table varchar(20)
declare @sql Nvarchar(200), @rowscount int
set @table= 'test1 '
set @sql= 'select @rowscount = Count(*) from '[email protected]+ ' where 条件表达式 '
EXEC sp_executesql @sql, N '@rowscount int Output ',@rowscount Output
IF(@rowscount > 0)
...
------解决方案--------------------
可以一起动态

declare @table varchar(20)
--declare @sql varchar(200) 不要变量
set @table= 'test1 '
exec( '
if exists(select * from '[email protected]+ ' where 条件表达式)
begin
update '[email protected]+ ' set ... where 条件表达式
end
else
insert '[email protected]+ ' ...
')


  相关解决方案