如果表不存在,则将表数据移动到另一个表

时间:2015-07-06 12:00:59

标签: sql-server sql-server-2008

我正在生成动态脚本,如果表不存在则将数据移动到另一个数据库,然后我想创建。如果直接执行,此脚本将完美运行。但如果脚本字符串由execute语句执行,则会出错。我也试过exec。

declare @temp as varchar(max)
set @temp='select * into Allocation_Archive.dbo.Users from Users'
execute @temp

错误

Database 'select * into Allocation_Archive' does not exist. Make sure that the name is entered correctly.

1 个答案:

答案 0 :(得分:0)

选项1

  1. 向变量添加var label1 = document.getElementById("selectionForm:entryActionTabs:brand_selection2").getElementsByTagName("label")[0]; label1.innerHTML="HI"; 语句或指定包括数据库和模式的完整对象名称。
  2. USE database变量括在括号中
  3. 例如:

    @temp

    选项2

    不要使用:

    declare @temp as varchar(max)
    set @temp='select * into Allocation_Archive.dbo.Users from ThisDatabase.dbo.Users'
    execute @temp
    

    改为使用

    EXECUTE @temp
    

    您还需要将EXEC sp_executesql @temp 变量更改为@temp