日期:2014-05-17  浏览次数:20498 次

如休为视图的计算列加上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