trans sql vs pl sql中的存储过程

时间:2014-05-23 16:38:52

标签: sql tsql plsql oracle11g sql-server-2012

在oracle(pl-sql)中我有

s as (select * from ruleassigns$all where [snapshot] = p_Id);

在存储过程中。我想将它移植到sql server(trans-sql)中,但是当我写同样的时候,它给出了我对语句结构的错误。请帮忙! 我想知道像

这样的东西
declare @s = (select * from ruleassigns$all where [snapshot] = p_Id);

但这也不正确。

1 个答案:

答案 0 :(得分:0)

由于此查询返回多个值,您可能希望使用Declare @table。

语法将是

Declare @s Table (p_id SomeDataType(probably int?))

您可以像任何其他表一样使用@s。

SELECT * FROM @s

Note:我个人喜欢临时表的感觉。他们感觉像普通的桌子。

你写道:

CREATE TABLE #tableName (p_id SomeDataType)

在您的SP结束时,您需要DROP TABLE #tableName