读书人

如休替视图的计算列加上NOT NULL约束

发布时间: 2013-12-11 16:44:13 作者: rapoo

如休为视图的计算列加上NOT NULL约束?
比如下面的视图创建语句:


ALTER VIEW [dbo].[vwClient_CompanyPerson]
WITH SCHEMABINDING
AS
SELECT
A.CompanyID*1000+B.PersonID AS CompanyPersonID, A.CompanyID, B.PersonID
FROM
dbo.tblCompany AS A INNER JOIN
dbo.tblPerson AS B ON B.CompanyID=A.CompanyID

如何为CompanyPersonID加上NOT NULL约束?谢谢!!!
[解决办法]
view是视图,没有表结构,使用对列使用约束,只能对select添加where条件。

你在from后添加 where CompanyPersonID is not null就可以。


[解决办法]

2
3
4
5
6
7
8

ALTER VIEW [dbo].[vwClient_CompanyPerson]
WITH SCHEMABINDING
AS
SELECT
A.CompanyID*1000+B.PersonID AS CompanyPersonID, A.CompanyID, B.PersonID
FROM
dbo.tblCompany AS A INNER JOIN
dbo.tblPerson AS B ON B.CompanyID=A.CompanyID


select * from vwClient_CompanyPerson where CompanyPersonID is not null


[解决办法]
引用:
不好意思,标题写错了,如何写成如休了。


你要给CompanyPersonID 这个加上not null的约束,好像不行,我觉得还不如把语句改成这样:


ALTER VIEW [dbo].[vwClient_CompanyPerson]
WITH SCHEMABINDING
AS
SELECT
isnull(A.CompanyID*1000,0)+isnull(B.PersonID,0) AS CompanyPersonID, A.CompanyID, B.PersonID
FROM
dbo.tblCompany AS A INNER JOIN
dbo.tblPerson AS B ON B.CompanyID=A.CompanyID

读书人网 >SQL Server

热点推荐