SQL SERVER先判断视图是否存在然后再创建视图的语句

如果我们的语句为:

IF NOT EXISTS(SELECT 1 FROM sys.views WHERE name='Report_IndividualTicket') BEGIN create view Report_IndividualTicket as SELECT Ticket.TicketNumber, Ticket.TicketID, GisProcess.StageName, Content.DtReceived, Content.ContentText FROM (GisProcess INNER JOIN Ticket ON GisProcess.TicketID=Ticket.TicketID) INNER JOIN Content ON Ticket.ContentID=Content.ContentID END

会提示以下错误:

Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword 'view'.

出现这个错误的原因是:create view 这一句必须是批处理中的第一句。

所以可以将该语句修改为:

IF EXISTS(SELECT 1 FROM sys.views WHERE name='Report_IndividualTicket') DROP VIEW Report_IndividualTicket GO create view Report_IndividualTicket as SELECT Ticket.TicketNumber, Ticket.TicketID, GisProcess.StageName, Content.DtReceived, Content.ContentText FROM (GisProcess INNER JOIN Ticket ON GisProcess.TicketID=Ticket.TicketID) INNER JOIN Content ON Ticket.ContentID=Content.ContentID GO

时间: 2024-09-24 01:20:48

SQL SERVER先判断视图是否存在然后再创建视图的语句的相关文章

Sql Server中判断表或者数据库是否存在

SQL Server中判断数据库是否存在: 法(一): select * From master.dbo.sysdatabases where name='数据库名' 法(二): if db_id('数据库名') is not null drop database ...    go create ...  SQL Server中判断表对象是否存在: select count(*) from sysobjects where id = object_id('数据库名.Owner.表名') if

sql server 怎么判断一个表里面的字段拆分之后是否可以在另一个表的字段里面查到数据

问题描述 sql server 怎么判断一个表里面的字段拆分之后是否可以在另一个表的字段里面查到数据 其中F_Split是分割以逗号连接的字符串的方法 怎么判断string字段拆分之后的数据是否能在@a表中的id字段找到对应的记录 insert into @a(idname)values(1'A')insert into @a(idname)values(2'B')insert into @a(idname)values(3'C')select * from @ainsert into @c(s

Sql Server中判断表、列不存在则创建的方法

一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法 IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 第二种方法,短小精

sql server里连接远程服务器,并进行创建和删除新数据库

sql server里连接远程服务器,并进行创建和删除新数据库教程 一.创建新库 /* 测试 在sql2005中通过查询分析器,连接到sql2000,并创建了 tmpdb 库:成功 p_CreateDB 'tmpdb1','data','sa','sa' */ -----------------------创建存储过程开始-------------------- if object_id('p_CreateDB') is not null drop procedure p_CreateDB go

sql server中判断表或临时表是否存在的方法_MsSql

1.判断数据表是否存在 方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else print '不存在' 例如: use fireweb; go if object_id(N'TEMP_TBL',N'U') is not null print '存在' else print '不存在' 方法二: USE [实例名] GO IF EXISTS (SELECT * FROM dbo.SysObjec

数据库 mysql 视图-MYsql,更新或插入创建视图的源表,则视图的数据更新需要时间吗?

问题描述 MYsql,更新或插入创建视图的源表,则视图的数据更新需要时间吗? 使用的工具是Navicat for MySql, 主要问题是:我要同步七张表数据,然后根据这七张表创建了一个视图A,然后根据视图A去刷新表B.视图A与表B,数据结构是一致的. 实现过程是用存储过程,先同步七张表,然后直接用视图A去刷新表B.刷新是指使表B与视图A,数据一模一样. 在测试的过程中,当向七张表同步4万条数据时候,发现表B少同步了:六百多条数据. 我猜测是在同步完七张表数据之后,更新视图A需要一定的时间,在视

sql server中判断表或临时表是否存在的方法

1.判断数据表是否存在 方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else print '不存在' 例如: use fireweb; go if object_id(N'TEMP_TBL',N'U') is not null print '存在' else print '不存在' 方法二: USE [实例名] GO IF EXISTS (SELECT * FROM dbo.SysObjec

SQL SERVER如何判断某个字段包含大写字母_MsSql

sql语句中默认是不区分大小写的,所以语句: Sql代码 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = 'QQ' 和 Sql代码 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = 'qq' 查到的结果是一样的. 要查看某个字段是否包含大写字母 A 的脚本为: Sql代码 select * from RecEngineBizInfo where RecEngineBizN

SQL SERVER如何判断某个字段包含大写字母

sql语句中默认是不区分大小写的,所以语句: Sql代码 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = 'QQ' 和 Sql代码 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = 'qq' 查到的结果是一样的. 要查看某个字段是否包含大写字母 A 的脚本为: Sql代码 select * from RecEngineBizInfo where RecEngineBizN