我正在尝试使用ALTER VIEW
向视图添加列,但它一直说'列无效'。我需要列为BIT NOT NULL。我该怎么做呢?谢谢大家!
SELECT dbo.tbl_skins.skinName, dbo.tbl_prefs.PersonID, dbo.tbl_prefs[columnName] etc...
FROM dbo.tbl_prefs
INNER JOIN dbo.tbl_skins
ON dbo.tbl_prefs.skinId = dbo.tbl_skins.skinId
我没有添加其余列,因为其余的都来自dbo.tbl_prefs
。唯一不同的是第一个读dbo.tbl_skins.skinName
。
打开桌子后,我看到了,
SELECT TOP (1000) [column1],[column2], etc... FROM [table_name].
我要做的就是在表格(dbo.tbl_prefs
)中添加一个类型为BIT,NOT NULL的新列,并为视图(dbo.qry_prefs
)添加相同的列。
答案 0 :(得分:1)
是的,我尝试使用该列来使其有点不为空,但我认为我写错了语法。对不起,我有一段时间没用过SQL 更不用说与观点合作了。我删除了查询,但我想我写了 它像ALTER VIEW [dbo]。[qry_prefs] AS SELECT CAST(位,非空) [newColumn] FROM [projects]。[dbo]。[qry_prefs]但我很确定 那是错的。
您正尝试将一列添加到您希望再次从该视图中检索的视图中。这是没有意义的。
尝试这样的事情
假设您的视图名为qry_prefs,并且您想要添加一个空白位列。
allowedStrings = ['haha','wow','angry','sad','like'];
public reaction? : allowedStrings;
使用别名
让自己更容易一些ALTER VIEW [dbo].[qry_prefs] AS
SELECT dbo.tbl_skins.skinName,
dbo.tbl_prefs.PersonID,
dbo.tbl_prefs.[columnName],
etc...
convert(bit, null) as newColumn
FROM dbo.tbl_prefs
INNER JOIN dbo.tbl_skins ON dbo.tbl_prefs.skinId = dbo.tbl_skins.skinId
编辑:根据评论,您似乎需要将字段添加到表格和视图中
可以这样做
ALTER VIEW [dbo].[qry_prefs] AS
SELECT s.skinName,
p.PersonID,
p.[columnName],
etc...
convert(bit, null) as newColumn
FROM dbo.tbl_prefs p
INNER JOIN dbo.tbl_skins s ON p.skinId = s.skinId
现在将此字段添加到视图中,如下所示
alter table [dbo].[tbl_prefs]
add newColumn bit null
答案 1 :(得分:-1)
试试这个----
创建表#temp( col_1 varchar(15)not null, col_2 varchar(15)not null );
将视图tq84_v创建为选择col_1,来自
的col_2