2010-11-26 41 views

回答

1

表值参数是一个不错的选择,我个人更喜欢创造在调用存储过程中临时表,并在被调用过程从临时表中读取。

所以代码,这将是:

CREATE PROC DoStuff 
AS BEGIN 
    CREATE TABLE #tobeinserted (Data1 INT, Data2 INT...) 
    EXEC InsertRows 
END 

CREATE PROC InsertRows 
AS BEGIN 
    INSERT INTO Table1 SELECT * FROM #tobeinserted 
END 

这个工作可靠,因为临时表有一生的时间,直到它们被创建退出存储过程。此方法的一个优点是临时表与表值参数不同,可以定义(聚集)索引,因此这些表中的查找速度可能非常快。缺点是不能同时运行SP的两个实例。

相关问题