IF 语句中间的 GO 命令

2024-07-04

我正在寻找有关创建表的信息,仅当它们在当前数据库中不存在时(以便能够在可能或可能没有它们的不同数据库中创建它)并发现这两个有用的主题

  • SQL Server:检查表是否存在 https://stackoverflow.com/questions/167576/sql-server-check-if-table-exists
  • 如何检查SQL Server表中是否存在列 https://stackoverflow.com/questions/133031/how-to-check-if-column-exists-in-sql-server-table

所以我做了这个查询

IF (NOT EXISTS (SELECT * 
             FROM INFORMATION_SCHEMA.TABLES 
             WHERE TABLE_NAME = 'EMAILCONTAS'))
BEGIN
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[EMAILCONTAS](
    [NRSEQEMAILCONTAS] [numeric](8, 0) NOT NULL,
    [CDEMAILCONTAS] [varchar](40) NULL,
    [MSGEMAILCONTAS] [varchar](4000) NOT NULL,
    [CCOEMAIL] [varchar](100) NULL,
    [NRSEQOPERADORA] [numeric](8, 0) NOT NULL,
 CONSTRAINT [PK_EMAILCONTAS] PRIMARY KEY CLUSTERED 
(
    [NRSEQEMAILCONTAS] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[EMAILCONTAS]  WITH CHECK ADD FOREIGN KEY([NRSEQOPERADORA])
REFERENCES [dbo].[OPERADORA] ([NRSEQOPERADORA])
GO

ALTER TABLE [dbo].[EMAILCONTAS]  WITH CHECK ADD  CONSTRAINT [FK_EMAILCONTAS_OPERADORA] FOREIGN KEY([NRSEQOPERADORA])
REFERENCES [dbo].[OPERADORA] ([NRSEQOPERADORA])
GO

ALTER TABLE [dbo].[EMAILCONTAS] CHECK CONSTRAINT [FK_EMAILCONTAS_OPERADORA]
GO
END

但是当我执行它时,我在错误列表中得到了这个。

Msg 102, Level 15, State 1, Line 5
Incorrect syntax near 'ON'.

但无论如何它都会创建我的表(我输入了“从人员中选择*;”在上面的代码之后,检查错误是否会阻止下一个脚本的编译。并且错误阻止了它。显示此错误:

Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'Select'.

有办法避免吗?)。当我执行此查询并且表已经存在时,我收到以下错误。

Msg 102, Level 15, State 1, Line 5
Incorrect syntax near 'ON'.
Msg 2714, Level 16, State 6, Line 2
There is already an object named 'EMAILCONTAS' in the database.
Msg 2714, Level 16, State 5, Line 2
There is already an object named 'FK_EMAILCONTAS_OPERADORA' in the database.
Msg 1750, Level 16, State 0, Line 2
Could not create constraint. See previous errors.

我怎样才能做到这一点而不出现这些错误?有没有办法可以毫无问题地创建多个这样的代码?我究竟做错了什么?


GO类似于脚本的结尾;你可以删除GOs 来自 BEGIN-END 语句内。

如果您绝对需要GO在代码中,您可以将查询分解为:

IF (criteria)
BEGIN
    ...
END

GO

IF (newcriteria)
BEGIN
    ...
END
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IF 语句中间的 GO 命令 的相关文章

  • SQL Server,误导性的 XLOCK 和优化

    从我最近所做的一些测试和阅读来看 XLOCK 的 X 独占 名称部分似乎具有误导性 事实上 它并不比 UPDLOCK 多加锁 如果它是独占的 它将阻止外部 SELECT 但事实并非如此 我无法从阅读或测试中看出两者之间的区别 XLOCK 唯
  • 所有排序规则下包含相同长度整数的字符串的数字排序顺序

    是否可以安全地假设 SQL Server 中的所有排序规则都会对包含相同长度整数的字符串给出 预期 即数字 排序顺序 例如 假设 text仅包含非负整数 0 9 以下代码片段是否可以确保该值不会溢出int范围 或者可能有一些排序规则 tex
  • 向 SQL Server 用户授予执行权限以仅运行特定作业

    我请求创建可由特定 SQL 用户运行的 SQL Server 代理作业 如何在不授予用户执行权限的情况下完成此操作sp start job存储过程意味着他也可以运行所有其他禁止的作业 如果不授予用户对 sp start job 存储过程的执
  • Transact-SQL 不明确的列名

    我在使用 Microsoft SQL 2012 Server Management Studio 时遇到 Transact SQL 中的 列名不明确 问题 我一直在浏览 Stackoverflow 上已经发布的一些答案 但它们似乎对我不起作
  • Transact-SQL 不明确的列名

    我在使用 Microsoft SQL 2012 Server Management Studio 时遇到 Transact SQL 中的 列名不明确 问题 我一直在浏览 Stackoverflow 上已经发布的一些答案 但它们似乎对我不起作
  • SQL Server 中的页面是什么?我需要担心吗?

    我遇到过page在 SQL Server 2008 中 对此有些困惑 我目前正在阅读MCTS 自定进度培训套件 考试 70 433 Microsoft SQL Server 2008 数据库开发 https rads stackoverfl
  • 在 SQL Server 2008 R2 中引用前一行值进行算术计算

    我正在使用 SQL Server 2008 R2 并且是关系数据库的新手 我需要运行一个简单的计算 但计算涉及使用前一行的值 Example Value of X Value of Y at time t Value of Y at tim
  • 选择重叠的时间范围

    T SQL 日期时间问题 我有一组时间范围 在这些时间范围内 可能存在一组重叠的时间范围 我称之为 阻塞 时间 封锁的时间不会超过一天 我想要做的就是分割时间以排除被阻止的时间 基本上给我没有 被阻止 的时间范围 可以安全地假设阻塞时间不能
  • 用户定义函数性能缺点

    我有一个包含大量 UDF 的数据库 其中包含一个长时间运行的进程 涉及大量数据操作和计算 我使用 UDF 的想法是将信息的逻辑单元从底层表中分离出来 例如 如果我想获取有关汽车的信息 我可能有几个表 例如颜色 型号 年份等 每次获取汽车时我
  • 安装 SQL Server Management Studio 2016 时无法确定有效的安装目标文件夹

    安装 SSMS 2016 时 出现以下错误并且安装终止 SQL Server 2016 公用文件 无法确定安装的有效目标文件夹 我尝试过以下解决方案 删除所有文件 TEMP folder 检查一下BootstrapDir存在于 HKLM 中
  • SQL Server 2005 的未知优化?

    我在听 SO 播客 他们提到了 SQL Server 2008 的 Optimize For Unknown 他们还提到 SQL Server 2005 有类似的东西 有人知道这是什么吗 正如 Mladen Prajdic 提到的 OPTI
  • 文件夹或 SQL Server 作为二进制存储图像的更好方法是什么?

    我正在计划为客户开发一个照片库应用程序 我正在 asp net 3 5 中开发该应用程序 并希望开发它 以便我可以使用各种前端跨多个平台重复使用该应用程序 基本上 我想知道将图像作为二进制文件存储在数据库中与简单地将文件存储在应用程序文件夹
  • 比较跨多个数据库的存储过程 (SQL Server)

    SQL 大师 我们的架构由多个客户数据库和一个公共代码库组成 当我们部署数据库更改时 必须针对每个数据库运行脚本 由于部署问题 我们的存储过程有时会彼此不同步 我想创建一个脚本来返回这些不匹配的过程 以确保我们在部署后拥有数据库的同步副本
  • SqlCommand.Parameters.AddWithValue 到底做什么?

    有什么变化SqlCommand Parameters AddWithValue 与查询有关吗 我期望 它取代了每一个 字符由 如果参数值是字符串或必须转换为字符串的内容 则它将将该值括起来 例如select from A where B h
  • 使用 DBNull 或 null 插入/更新数据?

    当修改 SQL Server 数据库中的数据时 您可以使用System DBNull Value or null代表一个NULL价值 这两个都可以工作 并将设置适当的值NULL 我的问题是 其中哪一个是首选 为什么 在某些情况下是否应该使用
  • PHP SQLSRV:sqlsrv_query() 是否可以正确地准备 select 语句?

    TL DR Does sqlsrv query 做同样的工作select陈述比sqlsrv prepare and sqlsrv execute 关于准备好的陈述 做什么 我怎样才能做一个安全的select陈述 一点历史 我是 PHP 开发
  • 使用参数的 SQL Server 查询比使用常量字符串的查询花费的时间更长

    我在使用 MS SQL Server 2008 时遇到一个问题 当我使用硬编码字符串作为参数执行查询时 查询运行得很快 但是当我使用字符串参数时 查询需要更长的时间 常量字符串查询需要1秒 而其他则需要11秒 以下是代码 常量字符串 1秒
  • 超过 1 列具有 string_agg 的唯一值

    我正在尝试分组并获取多列的值列表 这是一个例子 City State Income Salem OH 40000 Salem OH 45000 Mason OH 50000 Dayton OH 60000 Salem MA 40000 Ma
  • 使用两列的 T-SQL“不在其中”

    我想从表 T1 中选择所有记录 其中 A 列和 B 列中的值与表 T2 中的 C 列和 D 列没有匹配的元组 In mysql Where not in 使用两列 https stackoverflow com questions 8435
  • 无法登录 SQL Server + SQL Server 身份验证 + 错误:18456

    我已经在 localhost sql2008 服务器上创建了登录帐户 例如 User123 映射到数据库 默认 SQL Server 上的身份验证模式设置为两者 Windows 和 SQL 但登录 SQL Server 失败并显示以下消息

随机推荐

  • 将带有数学表达式的字符串转换为浮点数

    文本字段包含数学表达式 例如 12 45 6可以将此字符串转换为数字吗 我们可以使用谓词设施吗 NSString foo a b c d 5 15 dummy predicate that contains our expression N
  • 使用lib添加自定义字体android

    我正在使用 android 自定义字体 lib Calligraphyhttps github com chrisjenx Calligraphy https github com chrisjenx Calligraphy 但对textv
  • Blazor - 重定向到一个解决方案中另一个项目中的页面

    我遇到了这样的情况 在一个解决方案中 想要将用户从一个项目的页面重定向到另一个项目的页面 这很重要 我在 blazor 服务器上做 任何人都可以教我一些东西吗 您始终可以注入 NavigationManager 通过此您可以将用户重定向到另
  • 来自 Abaqus/CAE 的 Python 多处理

    I am using a commercial application called Abaqus CAE1 with a built in Python 2 6 interpreter and API I ve developed a l
  • 使用 PowerShell 中的“备份”上下文创建卷影副本

    我正在编写一个 PowerShell 脚本 用于使用 rsync 备份 Windows 计算机 为此 我尝试使用所述脚本中的 WMI 创建一个有编写者参与的非持久卷影副本 显然建议备份 我从另一个问题中得知 从 Powershell 访问卷
  • 过滤(减少)NumPy 数组

    假设我有一个 NumPy 数组arr我想根据 可广播 函数的真值进行逐元素过滤 减少 例如 我只想获取低于某个阈值的值k def cond x return x lt k 有几种方法 例如 使用发电机 np fromiter x for x
  • 如何使信号客户端避免表单身份验证?

    我的 MVC 网站在 web config 中有表单授权 现在所有的页面都需要通过授权才能被查看 但是现在我有一个控制台程序 C 控制台程序 这个程序需要发送一些消息到 SignalR 集线器 但是我的 signalR Hub 在我的 MV
  • 使用相同的 URL 哈希刷新 BackboneJS? [复制]

    这个问题在这里已经有答案了 我当前的主干应用程序有一个 url localhost users 有没有办法访问localhost users当位于 URL 时localhost users所以它会刷新页面 目前 当我在localhost u
  • 使用关联类实现双向、多对多关联的流畅 NHibernate 映射

    我在 EntityA 和 EntityB 之间有一个双向多对多关联 并且我使用关联类 EntityABLink 对此进行建模 因为我需要跟踪有关该关系的其他属性 此外 我还有另一个类 它保存对 EntityA 和 EntityB 之间特定关
  • 不固定高度的滚动div

    我需要构建一个动态调整大小的滚动 div div 应动态调整大小以适应屏幕 但如果内容不适合屏幕 它应该显示一个滚动条 因此浏览器自己的滚动条永远不需要激活 我可以通过在 div 中放置另一个 div 并使用来让滚动条出现在 div 中ov
  • 如何获取对象类型

    在我的 Google Apps 脚本应用程序中 我看到以下错误 脚本已完成 但返回值不是受支持的返回类型 如何找出我返回的值的类型 我试过 typeof obj 但我得到的只是它是一个对象 仅当缓存为空并且从电子表格加载数据时才会发生此错误
  • React-native 应用程序在真实的 Android 设备上崩溃

    我正在使用react native 目前开始使用redux并创建了一个应用程序 但是当我在模拟器上运行该应用程序时 它工作正常 然后我通过 USB 将我的手机与 android 6 连接 它也可以工作 但在 Android 8 的其他设备中
  • 如何通过参数包传递引用?

    我有以下代码 include
  • iOS 版本的 Fragment

    谁能告诉我在 Xcode iPhone 中执行以下操作的最佳方法是什么 我有一个主导航屏幕 上面有一些按钮 当用户单击任何按钮时 他们将进入带有更多选项按钮的子导航屏幕 在这里 他们单击任意按钮 就会看到选项列表 单击任何列表选项都会向用户
  • 如何在R函数中使用switch语句?

    我想在 R 中的函数中使用以下语句switch 根据函数参数的值触发不同的计算 例如 在 Matlab 中 您可以通过编写来做到这一点 switch AA case 1 case 2 case 3 end 我找到了这个帖子 switch 语
  • Node Sass 缺少多个节点版本的绑定

    我正在使用 nvm 在节点版本之间切换 我的package json scripts dev rm rf public assets hot update js NODE ENV development webpack env dev pr
  • 在 JavaScript 中将数字转换为字符串,而不从数字中添加尾随零

    我尝试使用 toString 在 JavaScript 中将数字转换为字符串 但它会截断数字中无关紧要的零 举些例子 var n1 250 00 var n2 599 0 var n3 056 0 n1 toString yields 25
  • Laravel 使用 mysql 索引

    我有这个糟糕的代码 抱歉 它使用了太多 MySQL 查询 抱歉它太长了 return view dashboard homepage array DriversNumberApproved gt App Models Drivers whe
  • GWT UiBinder 不加载样式表

    我想使用 UiBinder 制作一个 GWT 小部件 所以我做了 UserPanel ui xml 像这样
  • IF 语句中间的 GO 命令

    我正在寻找有关创建表的信息 仅当它们在当前数据库中不存在时 以便能够在可能或可能没有它们的不同数据库中创建它 并发现这两个有用的主题 SQL Server 检查表是否存在 https stackoverflow com questions