Sql server 在Create Table语句的格式约束处

Sql server 在Create Table语句的格式约束处,sql-server,tsql,create-table,Sql Server,Tsql,Create Table,我正在SQL Server中为需要转换为SQL Server的Access DB的一个客户创建一个表。在表上,Access以某种方式屏蔽了列。它们有一个数字,比如说TP001111,当我将该值拉入SQL Server时,得到1111。我有一个名为VendorNumber的表,我需要格式化这个数字 CREATE TABLE VendorNumber ( V_ID NVARCHAR(8) NOT NULL PRIMARY KEY, V_Name NVARCHAR(30) NOT NULL )

我正在SQL Server中为需要转换为SQL Server的Access DB的一个客户创建一个表。在表上,Access以某种方式屏蔽了列。它们有一个数字,比如说TP001111,当我将该值拉入SQL Server时,得到1111。我有一个名为VendorNumber的表,我需要格式化这个数字

CREATE TABLE VendorNumber
(
  V_ID NVARCHAR(8) NOT NULL PRIMARY KEY,
  V_Name NVARCHAR(30) NOT NULL
)
我试着研究如何做到这一点,但我找不到一个好的例子。将该值插入表时,格式化该值的最佳方式是什么。我需要将其作为TP001111插入。我必须设置列格式的当前代码是:

UPDATE VendorNumber
SET V_ID = 'TP' + RIGHT((REPLICATE('0',6) + TPPRM_ID),6)

当“TP”前缀硬编码为始终相同时,“TP”前缀有什么意义?TPPRM_ID的数据类型是什么?客户说他们需要它来进行内部处理,必须是这样。它目前的数据类型是NVARCHAR(8)您发布的代码是否有问题?这可能是实现所需内容的最简单方法。Access可以将屏蔽数据存储在字段中,也可以在从查询返回结果时将屏蔽字符添加到原始数据中,具体取决于屏蔽定义中设置的标志。好的,SQL Server不提供此功能,但您可能可以使用触发器来实现此功能。如果我错了,请纠正我-您想从Access数据库中获取值“TP001111”并将其粘贴为“TP1111”MS SQL吗?