如果sysname不能为null,那么在这个SQL Server系统存储过程中sysname怎么可能= null呢?

2024-04-29

我读到了系统名不能为空 https://stackoverflow.com/questions/5720212/what-is-sysname-data-type-in-sql-server,但在系统过程的定义中sp_grantdbaccess,我看到将 null 分配给过程的参数之一(如果我没看错的话)。怎么会这样?

ALTER PROCEDURE [sys].[sp_grantdbaccess]
    @loginame   sysname,
    @name_in_db sysname = NULL OUT

"SYSNAME不可能是NULL“只是不正确。当链接问题的答案说它相当于NVARCHAR(128) NOT NULL as a default——然后有效地only在列定义中。比较:

-- When not specified, columns are NULL
SET ANSI_NULL_DFLT_ON ON  

-- Works
CREATE TABLE T(N NVARCHAR(128)); INSERT T DEFAULT VALUES; SELECT * FROM T
GO
DROP TABLE T
GO

-- When not specified, columns are NOT NULL
SET ANSI_NULL_DFLT_ON OFF

-- Error: can't insert NULL
CREATE TABLE T(N NVARCHAR(128)); INSERT T DEFAULT VALUES; SELECT * FROM T
GO
DROP TABLE T
GO

现在尝试同样的方法SYSNAME:

-- When not specified, columns are NULL
SET ANSI_NULL_DFLT_ON ON  

-- Error: SYSNAME is NOT NULL, regardless of defaults
CREATE TABLE T(N SYSNAME); INSERT T DEFAULT VALUES; SELECT * FROM T
GO
DROP TABLE T
GO

但这并不意味着SYSNAME不可能是NULL,我们所要做的就是说它可能是:

-- Works
CREATE TABLE T(N SYSNAME NULL); INSERT T DEFAULT VALUES; SELECT * FROM T
GO
DROP TABLE T
GO

在几乎所有其他使用类型的上下文中(变量、存储过程参数),我们无法指定NULL or NOT NULL and NULL值总是被允许的,所以这NOT NULL元数据很少相关。上面的代码使用常规表并非偶然:如果您对表变量尝试相同的操作,您会发现ANSI_NULL_DFLT_ON被忽略并且NULL如果未指定,则始终是列的默认值,因此唯一相关的情况是:

-- Can't insert NULL
DECLARE @T TABLE (N SYSNAME); INSERT @T DEFAULT VALUES; SELECT * FROM T@
GO

-- OK
DECLARE @T TABLE (N SYSNAME NULL); INSERT @T DEFAULT VALUES; SELECT * FROM @T
GO
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果sysname不能为null,那么在这个SQL Server系统存储过程中sysname怎么可能= null呢? 的相关文章

  • 如何在使用存储过程插入数据表时获取范围标识列

    我正在使用存储过程插入数据表并之前创建了一个类型表 查询是我想取回已在此会话中插入的所有 ProdID 对于单个插入 我可以获取范围标识 但我想获取最近插入的所有内容 提前致谢 dbo sp Isert dt Product Product
  • sql中的sumProduct

    我正在尝试在服务器上的表中实现 sumproduct 来自 Excel select into myTable2 from myTable1 select a b c d e select c e 100 3423 from myTable
  • SQLAlchemy/pandas to_sql for SQLServer -- 在主数据库中创建表

    使用 MSSQL 版本 2012 我使用 SQLAlchemy 和 pandas 在 Python 2 7 上 将行插入 SQL Server 表中 使用特定服务器字符串尝试 pymssql 和 pyodbc 后 我正在尝试 odbc 名称
  • 如何使用 REST API 导出 SSRS 2017 报告

    我已经设置了 SSRS 2017 我需要使用他们的新 REST API 导出 SSRS 报告 我一直在查看 API 规范here https app swaggerhub com apis microsoft rs SSRS 2 0但我在
  • 如何在SQL Server中创建SYS模式的表?

    可以在 SQL Server 2008 sys 架构中创建表吗 我知道可以将表标记为系统 但不能更改架构 有什么窍门吗 您无法将自己的对象添加到 sys 架构中 无法在 sys 架构中创建用户定义的对象 盖尔 埃里克森 MS SQL Ser
  • 数百个别名/同义词与数据库表的完全限定名称

    考虑到多个模式中的数百个数据库表 在创建存储过程和视图时 您是否建议使用别名 同义词或完全限定名称 给定一些 schema table 像这样 Orders OrderHeader Production LineThroughput Sal
  • 适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:用户“sa”登录失败

    我正在安装 Informatica 的 MDM MDM 10 2 Jboss 6 4 EAP SQL Server 11 Windows Server 2008 R2 在创建模式 sip ant bat create bpm 期间 我收到此
  • 在ASP CLASSIC中使用SQL参数,对象定义不正确错误

    我试图使用参数保护我的 INSERT 语句免受 SQL 注入 但由于某种原因我收到错误 Parameter object is improperly defined Inconsistent or incomplete informatio
  • CROSS APPLY 不适用于 SQL SERVER 2000?

    如何在 SQL Server 2000 中使用与 CROSS APPLY 等效的功能 我有一个函数返回传递的 id 的顶级父级 ALTER Function dbo fn GetTopParentRiskCategory RctId int
  • 如何处理用户界面中的数据库约束违规?

    我们使用存储过程在数据库中实现大部分业务规则 我永远无法决定如何最好地将数据约束违规错误从数据库传递回用户界面 我所说的约束更多地与业务规则相关 而不是与数据完整性相关 例如 诸如 无法插入重复的键行 之类的数据库错误与业务规则 不能有多个
  • 表名搜索

    我使用以下命令在特定数据库的存储过程中搜索字符串 USE DBname SELECT Name FROM sys procedures WHERE OBJECT DEFINITION OBJECT ID LIKE xxx 修改上面的内容是否
  • 使用 WHILE 创建虚拟数据

    我尝试使用 a 在表中插入一些虚拟数据WHILE 但它运行得非常非常慢 我在想也许我写的代码不正确 你能看一下并确认一下吗 Insert dummy data DECLARE i int Content int SET i 5001 WHI
  • 如何从经典 ASP 读取 SQL Always-加密列

    我维护一个经典的 ASP 应用程序 是的 我知道 我们正在开发它 并且需要访问 SQL 2017 中的 Always Encrypted 列 我已经导入了证书并在 SSMS 和 PowerShell 中进行了测试 这很有效 我在 ASP 中
  • 如何授予所有表的 REFERENCES 权限

    我必须授予REFERENCES登录权限说sql login 我可以给予资助REFERENCES对单个表的权限 例如 GRANT REFERENCES ON Mytable TO sql login 有什么办法可以授予REFERENCES允许
  • Scrapy - 如何抓取网站并将数据存储在 Microsoft SQL Server 数据库中?

    我正在尝试从我们公司创建的网站中提取内容 我在 MSSQL Server 中为 Scrapy 数据创建了一个表 我还设置了 Scrapy 并配置了 Python 来抓取和提取网页数据 我的问题是 如何将Scrapy爬取的数据导出到我本地的M
  • SQL服务器事务

    我需要了解sql server事务 我浏览了谷歌上的一些文章 但我什么也没理解 谁能帮我 您可以通过写入显式启动事务BEGIN TRANSACTION 您可以通过运行来结束事务COMMIT TRANSACTION 之前COMMIT运行时 受
  • SQL Server,插入 Excel“链接服务器”时出现“无效列名”错误

    我有一个简单的 Excel 电子表格文档 运行 Office 2013 我使用 Microsoft Office 15 0 Access 数据库引擎 OLE DB 提供程序 将其用作数据库 我可以使用 MS SQL Server Manag
  • SQL 删除表并重新创建并保留数据

    在我们最初的设计中 我们搞砸了表中的外键约束 现在表已充满数据 我们无法在不删除表中所有记录的情况下更改它 我能想到的唯一解决方案是创建一个备份表并将所有记录放在那里 然后删除所有记录 更改表并开始将它们添加回来 还有其他 更好 的想法吗
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 在 Sql Server 中转换为日期时间 MM/dd/yyyy HH:mm:ss

    如何将给定的日期格式转换为MM dd yyyy HH mm ss 我尝试了下面这个但没有实现 谁能帮我 SELECT CONVERT VARCHAR 20 GETDATE 120 SQL Server 2005及以上版本支持 SELECT

随机推荐

  • Eclipse JSP:默认文本文件编码不正确

    我有以下问题 我创建了一个新的 动态 Web 项目 并将一些现有的 jsp 文件导入其中 如果我右键单击导入的 jsp 文件之一 然后单击 属性 gt 资源 则在 文本文件编码 部分下 值为 默认 由内容类型确定 ISO 8859 1 不过
  • 带有图标和文本的 UITableViewRowAction

    有几个类似的问题 但我认为应该有一个针对 iOS 10 的最新答案 使用 Swift3 不使用私有 API 并且不依赖于将图标限制为 unicode表情符号 我现在有包含三个操作的表行 func tableView tableView UI
  • GSON 是一个 Java Throwable

    我有一个对象 其中包含一段数据和关联的异常 Public class MyBean Private String data Private Exception problem 当我尝试GSON toJSON 对象 它给了我一个循环引用抱怨
  • 如何让石斑鱼和轴一样长?

    对于我的作业 我应该使用 matplotlib 在地图上绘制 20 场飓风的轨迹 但是 当我运行我的代码时 出现错误 AssertionError Grouper and axis must be the same length 这是我的代
  • 从彩色背景中提取黑色对象

    人眼很容易辨别black来自其他颜色 但是计算机呢 我在普通的A4纸上打印了一些色块 由于组成彩色图像有青色 品红色和黄色三种墨水 所以我设置每个块的颜色C 20 C 30 C 40 C 50 以及其余两种颜色是 0 这是我的源图像的第一列
  • sprintf 风格字符串格式化的起源

    字符串格式化概念见sprintf如今几乎可以在任何语言中找到 你知道 用 s d f 等掩盖字符串 并提供变量列表来填充它们的位置 哪种语言最初具有提供此功能的库函数或语言结构 请指定某种来源参考以确认您的主张 以便我们避免纯粹的猜测或猜测
  • 使用 JavaScript 检查复选框时更改样式

    我正在尝试 没有成功 创建一个复选框 在选中时更改正文的某些样式属性 如下所示 我究竟做错了什么 提前致谢 您需要使用事件侦听器并在侦听器内运行该脚本 您在代码中所做的是在脚本运行时设置一次颜色 您没有告诉程序每次更改复选框时都进行检查 c
  • Java中的整数除法[重复]

    这个问题在这里已经有答案了 这感觉像是一个愚蠢的问题 但我在 Java 文档中找不到答案 如果我声明两个 int 然后将它们相除 到底发生了什么 他们是否转换为floats doubles首先 划分 然后投射回integer 或者除法是作为
  • React Router v4 NavLink 活动路由

    我正在尝试使用 v3 移植我的项目react router到现在所谓的 v4react router dom 现在 当我有一个 MenuBar 组件时 问题就出现了 该组件与路由逻辑完全分开 如您所期望的 因为无论当前路径是什么 它都会显示
  • 如何替换引号之间出现的任何单词

    我需要能够替换所有出现的单词 and 仅当它出现在单引号之间时 例如 将字符串中的 and 替换为 XXX This and that with you and me and others and not her and him 结果是 T
  • 如何将TabLayout与Recyclerview同步?

    我有一个TabLayout with Recyclerview这样当单击选项卡时Recyclerview滚动到特定位置 我也想要相反的过程 这样当Recyclerview滚动到特定位置 然后该特定选项卡会突出显示 例如 如果有 4 个选项卡
  • 关于使用 Ionic3 和 Hammer.JS 进行捏合缩放手势的独家新闻是什么?

    我需要能够在 Android 和 iOS 上进行捏合缩放以缩放字体大小 不仅仅是我在谷歌搜索时看到的众多示例中的常规图像 有人可以告诉我在 Ionic 3 中是否有一种简单的方法可以做到这一点吗 文档 https ionicframewor
  • Thread.yield()之后线程的Thread.State是什么?

    是什么Thread State之后的一个线程Thread yield 是不是一个Thread State WAITING 谢谢 不 线程仍会在RUNNABLE http download oracle com docs cd E17409
  • 为什么不是所有的 Angular 包都声明为 devDependency?

    我知道节点 快递 我知道之间的区别dependencies and devDependencies 我正在学习角度 我已经看完了官方教程 我认为有角度的应用程序在开发时被编译成一组静态文件 这些文件被上传到某个服务器 一旦客户端下载它们 所
  • 使用Postman测试.net core 2页面返回400错误请求

    我创建了 net core 2 Pages 的默认项目模板 然后尝试使用 postman 测试对页面 OnPostAsync 不是 api 控制器 的调用 但我总是收到 400 错误请求 尝试使用标头等 但没有成功 有人设法做到这一点吗 在
  • Ruby:我可以编写没有连接的多行字符串吗?

    有没有办法让这个看起来好一点 conn exec select attr1 attr2 attr3 attr4 attr5 attr6 attr7 from table1 table2 table3 etc etc etc etc etc
  • Django 1.7 makemigrations 冻结/挂起

    我终于从 Django 1 6 升级到 1 7 并在此过程中删除了 South 我跟着Django 官方说明 https docs djangoproject com en 1 7 topics migrations upgrading f
  • Material-ui 表:如何对表元素进行样式更改

    我正在使用 material ui 并尝试让表格元素在元素具有特定值时改变颜色 下面是我尝试过的代码 如果单元格值为 超出区域 背景应该变成红色 表格渲染得很好 但是切换颜色变化不起作用 这是怎么回事 或者我的方法全错了 function
  • 鼠标在两个视图上移动,如何让它们都处理`ACTION_MOVE`事件

    我有两个视图 较大的一个在底部 较小的一个在顶部 如下图所示 现在我在 view1 view2 外部 上按鼠标 然后移动到 view2 我发现即使鼠标在移动过程中位于view2内部 view2也不会得到ACTION MOVE事件 只有vie
  • 如果sysname不能为null,那么在这个SQL Server系统存储过程中sysname怎么可能= null呢?

    我读到了系统名不能为空 https stackoverflow com questions 5720212 what is sysname data type in sql server 但在系统过程的定义中sp grantdbaccess