在存储过程中不能使用下列对象创建语句:
CREATE VIEW
CREATE DEFAULT
CREATE RULE
CREATE PROCEDURE
CREATE VIEW
CREATE DEFAULT
CREATE RULE
CREATE PROCEDURE
CREATE TRIGGER
如果要是想创建可以尝试下列办法
/*创建触发器*/
IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='P_niuzx' AND TYPE='P')
DROP PROCEDURE P_niuzx
GO
CREATE PROCEDURE P_niuzx
@sd NVARCHAR(200),@se NVARCHAR(2000)--声明变量
AS
BEGIN
EXEC SP_EXECUTESQL @sd--调用执行sql语句触发器
EXEC SP_EXECUTESQL @se
END
/*调用触发器*/
declare @se NVARCHAR(2000),@sd NVARCHAR(200)--声明变量
set @sd='IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME=''V_user'' AND TYPE=''V'')
DROP VIEW V_user'--定义变量
set @se='
CREATE VIEW V_user
AS
SELECT * FROM USER'
EXEC P_niuzx @sd,@se
需要注意的是:
1\变量赋值中的单引号改成两个单引号;
2\调用存储过程的时候,变量的顺序不要弄反,要先判断删除然后再执行