sql - 如何在存储过程中创建多个 View ?

标签 sql sql-server-2005 tsql stored-procedures ddl

我想创建一个临时存储过程来创建多个 View ;所以像这样:

create proc #t1 as
begin
   create view v1 as select 1 as x
   go
   create view v2 as select 2 as x
end

不幸的是,当我在 Microsoft SQL Server 2005 中执行此操作时,第一行 create view 出现语法错误。

类似这样的东西:

create proc #t1 as
begin
   exec('create view v1 as select 1 as x')
   exec('create view v2 as select 2 as x')
end

但是,这似乎是一种做我想做的事情的糟糕方式。

那么第一次尝试有什么问题,在存储过程中创建多个 View 的最佳方法是什么?

最佳答案

您不能在存储过程中使用 go。它不是 SQL 中的命令,它是 SQL 管理器中批处理之间的分隔符,因此它将把过程分成两个批处理并导致语法错误,因为两个批处理都不是完整的命令。

关于sql - 如何在存储过程中创建多个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646575/

相关文章:

sql - 查询存储在数据库字段中的字符串中的特定值

sql - 无法执行sql查询

sql - 如何在连接语句中获取左表中的所有行?

sql-server - 防止 Microsoft Access 锁定 MSSQL View Serverside?

sql - 如何使用简单的 Join 语句更新具有不同值的列?

php - 关注者查询

sql - 自动将数据从谷歌电子表格上传到 rdbms

sql-server - SQL Server 全文搜索没有结果

c# - 查找具有重复字段的集合并将它们合并到同一个表中

sql-server-2008 - 无法创建索引...不精确,计算且未持久化