多个存储过程有相同的语句,可以定义后共用吗?
用存储过程调用存储过程吗?如:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER PROCEDURE [dbo].[aaaaproc]
a_info varchar(256)AS
BEGIN
DECLARE @Sql varchar(4000),
SET @Sql = 'select * from history' + '想调用存储过程bbbbproc'
exec (@sql)
select @sql
go---另一个存储过程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER PROCEDURE [dbo].[bbbbproc]
a_info varchar(256)AS
BEGIN
DECLARE @Sql varchar(4000),
SET @Sql = 'where aInfo = '+rtrim(a_info)
go要在存储过程aaaaproc中嵌入调用bbbbproc存储过程,而且bbbbproc这个存储过程并不是一个完成的sql语句。
这样可以实现吗?
具体要怎样写呢??最好写一个简单地例子,用这个例子就行
用存储过程调用存储过程吗?如:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER PROCEDURE [dbo].[aaaaproc]
a_info varchar(256)AS
BEGIN
DECLARE @Sql varchar(4000),
SET @Sql = 'select * from history' + '想调用存储过程bbbbproc'
exec (@sql)
select @sql
go---另一个存储过程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER PROCEDURE [dbo].[bbbbproc]
a_info varchar(256)AS
BEGIN
DECLARE @Sql varchar(4000),
SET @Sql = 'where aInfo = '+rtrim(a_info)
go要在存储过程aaaaproc中嵌入调用bbbbproc存储过程,而且bbbbproc这个存储过程并不是一个完成的sql语句。
这样可以实现吗?
具体要怎样写呢??最好写一个简单地例子,用这个例子就行
declare @where varchar(255);
exec bbbproc xx,@where output然后在aaaaproc中.使用这个@where
@a_info varchar(256)
@where varchar(4000)
AS
BEGIN
DECLARE @Sql varchar(4000),
SET @Sql = 'where aInfo = '+rtrim(a_info)set @where = @sql;
go--------------------------------------------------
--------------------------------------------------ALTER PROCEDURE [dbo].[aaaaproc]
a_info varchar(256)AS
BEGIN
DECLARE @Sql varchar(4000),
SET @Sql = 'select * from history ' declare @where varchar(4000);
exec bbbbproc 20,@where output;set @sql = @sql + @where;exec (@sql)
select @sql
go
-->
@where varchar(4000) OUTPUT-----
漏了个output
本人表达能力真是。。有限。。哎。
(1)几个存储过程可以共用的sql语句(不完整的,一段一段的),这样的语句大概有6-7个。
(2)而语句除了共用的sql语句外,其他部分语句还会有参数不同,判断条件不同的情况。
因此不能放在一起写。
可如果每写一个存储过程,都重新写那些共用的语句,又很耗费时间(因为在存储过程里面写有判断条件的sql语句比较容易出错,如括号对错的情况),而且错误率也会高。
exec bbbbproc 20,@where output;20是做什么的??
也就是说在本地服务器的SQL存储过程里嵌入远程服务器SQL的存储过程,请问要怎么实现?谢谢!!!