【发布时间】:2014-03-20 00:03:48
【问题描述】:
我希望创建一个表来存储有关存储过程的信息。我需要存储SP_Name。我最初的计划是使用SP_Name NVARCHAR(128) NOT NULL。
从过程中我将使用OBJECT_NAME(@@PROCID) 函数来获取SP_Name 列的值。
这个technet 没有提供关于SYSNAME 数据类型的太多信息。 What is SYSNAME data type in SQL Server? 问题只解释了它是什么,但没有解释它是如何工作的,另外答案已经快 3 年了,微软在 2012 年和 2014 年版本对 SQL Server 进行了多次升级。
将SP_Name 存储在SYSNAME 中而不是NVARCHAR(128) 列有什么好处吗?或者我应该避免使用可能会在以后的版本中删除或更改的专有数据类型?
【问题讨论】:
-
据我所知,在 NVARCHAR(128) 上使用 SYSNAME 不会有任何好处。我个人不会使用它,但这更像是一个意见问题。
-
提醒一下,
SYSNAME不能是NULL,所以应该是NVARCHAR(128) NOT NULL -
我以为我已经在我的问题中指定了这一点。我还阅读了可能的重复内容,这就是我在问题中提到它的原因。
-
如果我看到
sysname,我会立刻想到“好吧,我要在这里找到一个 SQL Server 对象的名称”。可以免费作为额外的“文档”。 -
不同意关闭,因为重复所以重新打开。这个问题问的是 Sysname 的好处,而不是 Sysname 是什么。
标签: sql sql-server sql-server-2012