我正在使用sql server 2014 for windows form application,我有这样的列
id | AccountNo |位置
栏目详情:
id ---> int,not null,auto increment
AccountNo ---> varchar(50),not null,主键
位置---> varchar(50),not null
我想运行sql INSERT查询来输入用户输入,以便它就像这样
| id | AccountNo |位置|
| 10000 | PK10000 | PK |
我在想这个问题
string strCommand =" INSERT INTO Customer(ID,AccountNo,Location)值(@ ID,CONCAT(@ Location,@ ID [,@ AccountNo]),@ Location)&#34 ;;
或者是否可以创建一个触发器,如果不可能这样,就会在插入时组合两列,因为AccountNo是PK
建议请..
答案 0 :(得分:2)
你真的不应该像这样连接主键值。例如,您可以获得重复值。最好将IDENTITY列创建为主键。如果您确实需要额外的列用于显示目的,则添加计算列。例如:
CREATE TABLE MyTable
(
ID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
Location VARCHAR(20) NOT NULL,
AccountNo AS CAST(ID AS VARCHAR) + Location
)
现在你只需要像这样插入:
INSERT INTO MyTable (Location) VALUES ('PK')
这将为您提供包含以下值的行:
ID Location AccountNo
1 PK 1PK
您还可以在计算列上创建约束,以强制AccountNo的唯一值:
ALTER TABLE MyTable
ADD CONSTRAINT UX_MyTable_AccountNo UNIQUE (AccountNo)