Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server中执行多过程脚本_Sql_Sql Server_Sql Server 2008_Dynamic Sql - Fatal编程技术网

如何在sql server中执行多过程脚本

如何在sql server中执行多过程脚本,sql,sql-server,sql-server-2008,dynamic-sql,Sql,Sql Server,Sql Server 2008,Dynamic Sql,下面是我用SQLServer编写的select查询 这会回来的 qry ------------------------------------- exec pr_tblmaster_split 'tblmaster_1' exec pr_tblmaster_split 'tblmaster_2' 因此,我的问题是如何使用函数/过程运行返回查询 我正在尝试将PostgreSQL转换为SQL Server,所以 在PostgreSQL中,我可以使用这样的FOR循环 declare rw re

下面是我用SQLServer编写的select查询

这会回来的

qry
-------------------------------------
exec pr_tblmaster_split 'tblmaster_1'
exec pr_tblmaster_split 'tblmaster_2'
因此,我的问题是如何使用函数/过程运行返回查询


我正在尝试将PostgreSQL转换为SQL Server,所以

在PostgreSQL中,我可以使用这样的FOR循环

declare 
rw record;
begin
  for rw in 
         select 'select fn_tblmaster_spliting(''tblmaster_'||t.tbl||''');' crTables from (
         select distinct(year_id) tbl from tblmaster order by acyrid asc)t
   loop
         execute rw.crTables;
   end loop;
   end

将结果存储在
变量中
并通过
sp_executesql
执行。试试这个

declare @sql nvarchar(max)=''
select @sql+= 'exec pr_tblmaster_split ''tblmaster_'+  Cast(year as nvarchar(4000)) +'''; ' 
from  tblmaster
group by year_id 
order by year_id asc

exec sp_executesql @sql

我也面临着这个问题,想问一个新问题,但在建议箱里我发现了这个问题,我的问题就解决了。谢谢你的回答
declare @sql nvarchar(max)=''
select @sql+= 'exec pr_tblmaster_split ''tblmaster_'+  Cast(year as nvarchar(4000)) +'''; ' 
from  tblmaster
group by year_id 
order by year_id asc

exec sp_executesql @sql