AUTOID --- BRANCHID ---- QUTNO
1 10 "10#1"
2 11 "11#2"
AUTOID
是一个主要的自动生成的列。我需要QUTNO
用列branchid
和autoid
. 我如何在 sql server 插入语句存储过程中执行这些操作?
AUTOID --- BRANCHID ---- QUTNO
1 10 "10#1"
2 11 "11#2"
AUTOID
是一个主要的自动生成的列。我需要QUTNO
用列branchid
和autoid
. 我如何在 sql server 插入语句存储过程中执行这些操作?
使用计算列怎么样?
就像是
DECLARE @TABLE TABLE(
AUTOID INT IDENTITY(1,1),
BRANCHID INT,
QUTNO AS CAST(BRANCHID AS VARCHAR(25)) + '#' + CAST(AUTOID AS VARCHAR(25))
)
INSERT INTO @TABLE (BRANCHID) VALUES (10),(11)
SELECT * FROM @TABLE
使列成为计算列并设置计算表达式,以便相应地连接两列。
这是计算列的示例:
CREATE TABLE dbo.Products
(
ProductID int IDENTITY (1,1) NOT NULL
, QtyAvailable smallint
, UnitPrice money
--, InventoryValue AS QtyAvailable * UnitPrice
, computed1 As Convert(varchar,QtyAvailable) + '#' + Convert(varchar, UnitPrice)
);
-- Insert values into the table.
INSERT INTO dbo.Products (QtyAvailable, UnitPrice)
VALUES (25, 2.00), (10, 1.5);
-- Display the rows in the table.
SELECT ProductID, QtyAvailable, UnitPrice, computed1
FROM dbo.Products;
它将产生输出:
ProductID QtyAvailable UnitPrice computed1
1 25 2.00 25#2.00
2 10 1.50 10#1.50
您可以使用 IDENT_CURRENT() 来实现这一点。http://msdn.microsoft.com/en-us/library/ms175098.aspx
INSERT INTO TABLE1 (BRANCHID , QUTNO)
VALUES (@branchId, @branchId + '#' + (SELECT CONVERT(VARCHAR(30), IDENT_CURRENT('dbo.TABLE1'))))