我需要将表从一个数据库复制到另一个。我的第一个猜测是使用源代码中的以下语句:
SELECT *
INTO TARGETDB.SCHEMA.TABLENAME
FROM SCHEMA.TABLENAME
(编辑:我知道它不会设置主键等,没关系)
可悲的是,我必须在我的项目中使用的类几乎破坏了这个声明,我无法解决这个问题。
我的下一个想法是在 SQL Server 数据库中创建一个函数或过程,这样我就可以使用
SCHEMA.FUNCTNAME paramTARGETDB, paramTABLENAME
作为我的代码中的声明。
我当前的程序如下所示:
CREATE PROCEDURE [SCHEMA].FUNCTNAME
@pVC_TARGETDB VARCHAR(240),
@pVC_TABLENAME VARCHAR(240)
AS
BEGIN
SELECT *
INTO @pVC_TARGETDB.SYSADM.@pVC_TABLENAME
FROM SCHEMA.@pVC_TABLENAME
END
但我对 SQL 的了解并不多,SQL Server Management Studio 告诉我有语法错误。每个都@pVC_*
被标记(编辑:在前两次出现中,它们没有被标记。仅在 BEGIN 和 END 之间的块中)。我得到的信息是:
“@pVC_* 附近的语法错误需要 ID、QUOTED_ID 或 '.'。”
我几乎尝试了所有我能想象或用谷歌找到的写作方式,也许很容易解决,也许不是。我做不到,请帮帮我。