sql - varchar 列上的标识键 - T-SQL

标签 sql sql-server tsql sql-server-2008 calculated-columns

我想知道是否可以创建一个 Identity(在 Varchar 列上自动递增)。以及如何将其设为主键并在其他表上创建外键引用。

这是我的代码 -

CREATE TABLE Questions(
    QuestionID int IDENTITY PRIMARY KEY, 
    QuestionNo as 'Q'+Cast(QuestionID as Varchar(10),       
    Question Varchar(200)
)

有没有办法让 QuestionNo 作为主键并在另一个表中引用它(比如 Answers (AnswerID、QuestionNo、AnswerText)?

最佳答案

这对我在 SQL Server 2005 上有用:

CREATE TABLE Questions(
  QuestionID int IDENTITY NOT NULL, 
  QuestionNo as 'Q'+Cast(QuestionID as Varchar(10)) PERSISTED PRIMARY KEY, 
  Question Varchar(200)
)

主要部分是计算列需要 PERSISTED 关键字...

关于sql - varchar 列上的标识键 - T-SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3638870/

相关文章:

sql - 如何使用 Laravel eloquent 在数据透视表上执行额外的内部连接

Mysql Count相关记录不计数

sql - 将表列的序号索引向左移动

.net - 处理.NET中的数据库更改/脚本?

sql-server - Entity Framework 表命名约定

SQL Server 2000 XML 路径 ('') 错误

java - 使用 LiquiBase 和 Spring 将大量值(使用 FK)插入数据库

mysql - 使用 SELECT 从嵌套的 INSERT 语句中提取数据?

sql - 如何从 SQL Server 中的变量中删除所有 NewLine?

sql - 如何在 SQL Server 中同时将数据插入到两个表中?