在SQL 2005/8中,我希望将select查询中的列转换为NOT NULL列.
coalease()并且isnull(),虽然精功能,是不是我要找的.我希望select抛出一个错误,任何数据都是NULL.
这可能吗?
[更新]显然,最好的方法是修改源表,不幸的是,在这种情况下,它不是一个(成本效益)选项.
你要求的东西不存在.
NOT NULL是一个约束.SELECT语句不强制执行约束.约束仅在INSERT/UPDATE/DELETE数据期间强制执行.如果需要强制执行约束,请通过ALTER TABLE ... ADD ...在表上声明约束.
如果要返回非空数据,请使用空转换函数,如ISNULL或COALESCE.
一个奇怪的请求,但我认为这符合它:
DECLARE @TABLE TABLE
(
ID INT IDENTITY(1,1) NOT NULL,
Val VARCHAR(100) NULL
)
INSERT INTO @TABLE(Val)
SELECT 'Hello'
UNION SELECT 'World'
UNION SELECT NULL --Remove this line to prevent failure
SELECT
ID,
CASE WHEN Val IS NULL THEN CAST(1/0 AS VARCHAR) ELSE Val END AS ValCheck
FROM @TABLE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7331 次 |
| 最近记录: |