关于错误:
SQL70001: This statement is not recognized in this context.
的产生原因以及解决办法。
在SQL Server Database Project中,如下图是添加脚本时的界面:
请注意:
'
Script(Build)
’ -- 该文件是DDL类型文件
'
Script(Not in build)
' -- 该文件是DML类型文件
DML
(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
DDL
(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
DCL
(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。
该错误产生的原因是在DDL类型文件中,使用了 select ,insert, update, delete 等对数据操作的语句造成。
解决方案就是:搞清楚文件类型,使用正确的操作语句。
首发地址:http://www.yuanxj.net/2014/01/sql70001/