今天在调试Sql Server的存储过程时, 遇到sql Server 报这个错误:
Internal Query Processor Error: The query processor encountered an unexpected error during execution
错误的地方是很简单的select语句。
select top 0 * into [CPMS_ARCHIVE].[dbo].[cpms_ad_click] from [CPMS].[dbo].[cpms_ad_click];
单独拿出这条语句执行也报上述的错误,但是非常奇怪的是只要将这条语句略微修改,比如去掉一两个中括号就不报错误。
经过反复调试,发现错误的原因原来是在存储过程中加入了创建数据库的语句。
在存储过程中创建的数据库是无法在同一个存储过程中创建表,写入数据,或是执行其他非常简单的操作的。
因此,在写存储过程的时候要注意的是,不要临时创建数据库, 要事先创建好数据库, 不然会遇到无法解析的错误。