过程里面执行 创建view,报错。几条语句,单独执行都没问题。

heavyrain1234 2017-05-04 10:56:04
过程里面执行 创建view,报错。几条语句,单独执行都没问题。

ALTER PROCEDURE p_prepare_GYH
AS
BEGIN

DROP VIEW v_yhjFindAloneGYH ---第5行
go

CREATE VIEW v_yhjFindAloneGYH
AS
SELECT DISTINCT.....
......
go ----第29行。
----------------------
消息 102,级别 15,状态 1,过程 p_yhj_prepare_GYH,第 5 行
'v_yhjFindAloneGYH' 附近有语法错误。
消息 102,级别 15,状态 1,第 29 行
'END' 附近有语法错误。
...全文
135 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
drop 和 create 中间的 go 去掉
逍遥清风_Frank 2017-05-05
  • 打赏
  • 举报
回复
写在存储过程里的DDL语句建议使用动态脚本
xiaoxiangqing 2017-05-05
  • 打赏
  • 举报
回复
里面不能有go
shoppo0505 2017-05-05
  • 打赏
  • 举报
回复
view中只能有select操作,像你这样的操作,需要写成函数或者存储过程
卖水果的net 2017-05-05
  • 打赏
  • 举报
回复
go 表示一个语句(或一段语句)的结束。 建议使用 2# 提供的方法,删除 和 创建 都用动态语句;
吉普赛的歌 2017-05-05
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('dbo.proc_test') IS NOT NULL
DROP PROC dbo.proc_test
GO
CREATE PROC dbo.proc_test
AS
BEGIN
	DECLARE @sql NVARCHAR(MAX)
	if object_id('view_test') is not null
		drop view view_test
	SET @sql='
	create view view_test
	AS 
	SELECT 1 AS r
	'
	EXEC(@sql)
	SELECT * FROM view_test
END
GO
EXEC dbo.proc_test
/*
r
1 
*/

11,848

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧