我为此表ParaPITD.dbo.BM_00_PolicyMaster
创建了一个指向ParaPITDYYYYMM.dbo.BM_00_PolicyMaster
还没有桌子 - 所以它充当占位符。
我有一个创建临时表#BM_00_PolicyMaster
的存储过程,现在我想插入或选择同义词所指向的占位符并在ParaPITDYYYYMM.dbo.BM_00_PolicyMaster
中创建表
如果我这样做:
select *
into ParaPITD.dbo.BM_00_PolicyMaster
from #BM_00_PolicyMaster
它在ParaPITD.dbo.BM_00_PolicyMaster
中创建表并忽略同义词
如果我这样做:
INSERT INTO ParaPITD.dbo.BM_00_PolicyMaster
SELECT *
FROM #BM_00_PolicyMaster
它给了我一个无效的对象错误,就像表格在插入之前必须存在一样。
感谢任何帮助 - 谢谢
答案 0 :(得分:0)
来自doc(http://technet.microsoft.com/en-us/library/ms187552.aspx):
您无法在DDL语句中引用同义词
任何创建表的语句(包括SELECT INTO
)都算作DDL语句。 (见这里:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/1085a84c-faac-4d26-8f35-c64d8b901034/insert-into-is-sentence-dml-or-ddl)