sql-server - 使用 SQL Server SELECT INTO 创建不可为空的列
问题描述
RTRIM 和 LTRIM 使列可以为空。我怎样才能使它们不可为空?
CREATE TABLE SO_IN
(
RAW NVARCHAR(10) NOT NULL
) ;
GO
SELECT
RAW,
RTRIM(RAW) AS RTRIM,
LTRIM(RAW) AS LTRIM
INTO SO_OUT
FROM
SO_IN;
SELECT COLUMN_NAME, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'SO_OUT'
输出将是:
COLUMN_NAME|IS_NULLABLE
-----------|-----------
RAW |NO
RTRIM |YES
LTRIM |YES
我希望他们都是 IS_NULLABLE NO
解决方案
它比我想的更简单:
CREATE TABLE SO_IN
(
RAW NVARCHAR(10) NOT NULL
) ;
GO
SELECT
RAW,
ISNULL(RTRIM(RAW),'') AS RTRIM,
LTRIM(RAW) AS LTRIM
INTO SO_OUT
FROM
SO_IN;
SELECT COLUMN_NAME, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'SO_OUT'
推荐阅读
- docker - 在 docker 中映射用户的跨操作系统兼容方式
- python - Plotly/Dash 日期时间图
- puppet - puppet/hiera : 在 puppet 应用期间找不到模块类
- java - 当任何 PIT 突变失败而不是突变覆盖率时,maven build 可能会失败?
- python - 未按预期将带有数组的嵌套 ctypes 结构传递给 C 库函数
- html - 仅悬停在父菜单项上时强制显示子菜单
- python - 匹配 ID 中多个列的值
- android - Firebase-perf 与 let 插件冲突
- android - React-native 应用程序在真正的 android 设备上崩溃
- vb.net - vb.net winforms datetimepicker - 更改禁用日期的字体颜色