这是我的第一个问题。我是SQL Server和T-SQL的新手。为什么这个程序不起作用?
我想创建一个表,其中一列使用另一列的数据。我以为我可以使用选择功能,但它是不允许的。
怎么办?
以这种方式创建视图非常简单,但我希望有一张表格不能查看。
它应该看起来像
Column A, ColumnB,
Column C=select count(*) from [another table] where....
能否请你指教?
这是我的第一个问题。我是SQL Server和T-SQL的新手。为什么这个程序不起作用?
我想创建一个表,其中一列使用另一列的数据。我以为我可以使用选择功能,但它是不允许的。
怎么办?
以这种方式创建视图非常简单,但我希望有一张表格不能查看。
它应该看起来像
Column A, ColumnB,
Column C=select count(*) from [another table] where....
能否请你指教?
SELECT [COLUMN A],[COLUMN B],COUNT(*) as [COLUMN C]
INTO [destination table] FROM [another table] where...
你应该使用别名
创建使用CREATE TABLE语法,因为您需要定义字段名称和大小的表。在Books Online中查看语法。除非您创建一次性使用临时表或临时表,否则请勿使用SELECT INTO。创建新表格不是一个好的选择。另外,除了第一列之外,你不会说其他列是从哪里来的,所以可能不可能从最初的插入中正确设置正确的字段大小。此外,坦率地说,您应该花时间思考您需要的列以及它们应该是什么样的数据类型,避免对永久使用的表执行此操作是不负责任的。
要填充您使用插入语句与选择而不是值语句。如果仅列C来自另一个表,那么它可能是这样的“。
Insert table1 (colA, Colb, colC)
select 'test', 10, count(*)
from tableb
where ...
如果你必须得到来自多个表中的数据,那么你可能需要一个连接
如果您需要当TableB中的值更改时维护计算列,那么您可能需要在TableB或更高版本上编写触发器(更易于开发和维护,不太可能成为bug或创建数据完整性问题),而不是单独使用视图表。
我所拥有的是一个带coulmns的表格:booking_id,person_id,trip_id。而且我还有一个表[[]]与[[available_places]列],我希望再有一个列[free_places],在这里我需要计算这次旅行已经预订了多少次(select count(*)from预订其中trip_id = 1 –
我确实有这样的一个视图,但在我的项目中,我也需要在表中有这样一个列,我尝试使用这种语法“ALTER TABLE table_name ADD column_name datatype”但出错:-( –
可能的重复[如何基于另一个表创建表](http://stackoverflow.com/questions/18254104/how-do-i-create-a-table-b ased-on-another-table) –
*计算列*不能依赖于其他表。如果你需要频繁地创建一个包含该逻辑的**视图** –