如何在创建目标表后发生“模式更改”错误?
问题描述:
我在我的web应用程序试图在MSSQL 2005数据库上执行SELECT INTO时遇到此错误。我真的有两个问题:如何在创建目标表后发生“模式更改”错误?
- 这个错误是什么意思,这是怎么发生的?
- 有没有办法以不同的方式编码来防止这些错误?
答
除了显而易见的是,有人在代码执行时更改了表,它可能与SQL中创建的临时表发生命名冲突。这可能是因为有两个具有不同模式的临时表,但它们具有相同的名称。
答
使用SELECT INTO时,如果数据库触发器(AFTER CREATE_TABLE)更改表,则可能会出现此错误。
答
此外,当你有 SELECT * INTO #TABLE FROM TABLE 在存储过程中使用,并且它可以同时运行多次。