SQL Server Select-Into存储过程

时间:2013-12-26 22:58:33

标签: sql-server stored-procedures sql-server-2012

我正在尝试编写一个自定义存储过程来执行select into操作。我想将一个表(或表中的某些列)从一个数据库复制到另一个数据库。我正在使用SQL Server 2012

CREATE Procedure select_into
AS
Begin
    @selection varchar(128),
    @newtabname varchar(128)
    @fromtabname varchar(128)

    Select selection,
    INTO table1,
    FROM table2,
    WHERE selection = @selection AND table1 = @newtabname AND table2 =@fromtabname;     
go

    EXEC select_into, Ecode, relational_db.dbo.work, dbo.Work_Data;

我收到一条错误消息,指出“。”附近的语法错误。在relational_db.dbo.work

我很感激能帮助你做到这一点

2 个答案:

答案 0 :(得分:2)

您在参数列表中缺少逗号,并且过程声明的语法错误。它应该是::

CREATE Procedure select_into
(
    @selection varchar(128),
    @newtabname varchar(128),
    @fromtabname varchar(128)
)
AS
    Begin

但另外,INSERT INTO的语法包含额外的逗号,并且您无法以这种方式执行动态T-SQL。

我是否可以建议您首先了解SQL Server的TSQL语法。

答案 1 :(得分:1)

尝试这样的事情......

CREATE Procedure select_into
@selection   NVARCHAR(128),
@newtabname  NVARCHAR(128),
@fromtabname NVARCHAR(128)
AS
BEGIN
 SET NOCOUNT ON;
  DECLARE @sql NVARCHAR(MAX);

 SET @sql = N'Select ' + QUOTENAME(@selection) + 
             N' INTO ' + QUOTENAME(@newtabname) +
             N' FROM ' + QUOTENAME(@fromtabname)

   EXECUTE sp_executesql @sql
END