Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 在数据输入时自动连接文本_Sql Server 2005_Triggers_Concatenation - Fatal编程技术网

Sql server 2005 在数据输入时自动连接文本

Sql server 2005 在数据输入时自动连接文本,sql-server-2005,triggers,concatenation,Sql Server 2005,Triggers,Concatenation,我是个新手,需要帮助 我有一张叫“雇员”的桌子。它有两个字段[编号]和[编码]。我想自动获取[number]中输入的任何数字,并将其存储在[encode]中,以使其前面有适当数量的0,从而始终生成12位数字 例如: 用户在[number]中输入'123','000000000 123'自动存储在[encode]中 用户在[编号]中输入“123456789”,“000123456789”自动存储在[编码]中 我想我想写一个触发器来完成这个任务。我认为这会在输入数据时发生。是这样吗 主要思想是这样的

我是个新手,需要帮助

我有一张叫“雇员”的桌子。它有两个字段[编号]和[编码]。我想自动获取[number]中输入的任何数字,并将其存储在[encode]中,以使其前面有适当数量的0,从而始终生成12位数字

例如: 用户在[number]中输入'123','000000000 123'自动存储在[encode]中 用户在[编号]中输入“123456789”,“000123456789”自动存储在[编码]中

我想我想写一个触发器来完成这个任务。我认为这会在输入数据时发生。是这样吗

主要思想是这样的:

CREATE TRIGGER InsertEncodePadded
ON Employees
INSTEAD OF INSERT 'Use instead of to make sure you don't get start a recursive insert
AS
   BEGIN
      DECLARE @number varchar(12);
      DECLARE @encoded varchar(12);

      SELECT @number = [number] from inserted;
      SET @encoded = RIGHT(REPLICATE('0', 12) + @number, 12);

      INSERT INTO Employees VALUES(@number, @encoded);
   END
GO
变量1=长度[数字]

变量2=重复(0,12-变量1)

variable3=连接(variable2,[number])

[encode]=变量3

我只是不知道如何让这一切发生

任何帮助都会很棒


我有SQL-SERVER 2005,两个字段都是文本

以下链接提供了两种方法,可以用0填充数字,使其成为特定长度

在触发器中,它可能如下所示:

CREATE TRIGGER InsertEncodePadded
ON Employees
INSTEAD OF INSERT 'Use instead of to make sure you don't get start a recursive insert
AS
   BEGIN
      DECLARE @number varchar(12);
      DECLARE @encoded varchar(12);

      SELECT @number = [number] from inserted;
      SET @encoded = RIGHT(REPLICATE('0', 12) + @number, 12);

      INSERT INTO Employees VALUES(@number, @encoded);
   END
GO
我目前没有SQL Server,因此代码可能不完全正确,但它应该引导您朝着正确的方向前进