在存储过程中创建一个 SQL 表变量

5

我想在存储过程中创建一个包含以下内容的SQL变量表:

Select a,b,c,d from **@tablename** where a=1 and c=0

在创建存储过程时,如何使用sp进行操作?

请参考此链接:http://www.codeproject.com/Articles/18972/Temporary-Tables-vs-Table-Variables-and-Their-Effe - Mukesh Kalgude
你需要使用动态SQL将表名作为参数包含在SQL查询中。 - Gordon Linoff
这是糟糕的数据库设计的标志。 - Zohar Peled
1
你使用的是哪个数据库管理系统?"SQL" 是一种查询语言,而不是特定的数据库管理系统产品。 - user330315
2个回答

8

您可以在存储过程中声明表变量如下:

DECLARE @tablename TABLE(
    a INT,
    b INT,
    c INT,
    d INT);

SELECT * FROM @tablename;

0

我希望这个答案可以帮到你

GO
CREATE PROCEDURE PrededureName
AS
BEGIN
DECLARE @tempTable TABLE
(
    a INT, 
    b INT,
    c INT,
    d INT
)
INSERT INTO @tempTable (a, b, c, d)
SELECT a, b, c, d FROM @tablename WHERE a=1 and c=0
END
GO;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接