我设置了tb表的主键(流水号),然后设置主键的公式为[dbo].[f_NextBH]()[一个生成流水号函数],可是我点击保存的时候,老是提示
“tb”表
- 无法创建索引“PK_tb”。
无法在表 'tb' 中可为空的列上定义 PRIMARY KEY 约束。
无法创建约束。请参阅前面的错误消息。这是什么意思?应该怎么办?
“tb”表
- 无法创建索引“PK_tb”。
无法在表 'tb' 中可为空的列上定义 PRIMARY KEY 约束。
无法创建约束。请参阅前面的错误消息。这是什么意思?应该怎么办?
解决方案 »
- xtratabcontrol怎么让选项卡出现叉叉并且可以单击关闭?
- 两个Timer有何区别?
- 问一个很傻的问题。
- (愁死我了)我想二进制序列化(BinaryFormatter)一个类,然后传送到远程,再反序列化回来。
- 我要更改html的<title></title>里面的信息,有没有办法做成一个公共方法去更改呢?或用*.ascx文件实现也可以.
- [求助]新手求助
- RichTextBox里面怎么取某行的数据
- 如何忽略一个异常,让程序继续在抛出异常那里继续往下执行啊?
- 两个已经存在的窗体间如何得到相互对象呢?我不想new,一new就有新窗体产生了
- C#在没有任何数据时进行无效的读取尝试,求助
- 获取网上时间代码
- 如何实现调用一个未知对象的指定成员?
ALTER FUNCTION [dbo].[f_NextBH]()
RETURNS char(12)
AS
BEGIN
DECLARE @dt CHAR(6)
SELECT @dt= CONVERT(CHAR(6), GETDATE(), 12)
RETURN(
SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6)
FROM tb WITH(XLOCK,PAGLOCK)
WHERE BH like @dt+'%')
END
流水函数是这样的
第二、你 WHERE BH like @dt+'%' 条件确定一定能查出数据来,如果没有适合的条件数据的话,你前边的SELECT 查出来的就是空值了,PK 是不可以为空的,所以你最好在SELECT时加个判断是否空如何来处理、、、