在SQL Server中,可以insert
使用SELECT
语句进入表:
INSERT INTO Table (col1, col2, col3)
SELECT col1, col2, col3
FROM other_table
WHERE sql = 'cool'
Run Code Online (Sandbox Code Playgroud)
是否也可以通过?更新SELECT
?我有一个包含值的临时表,并希望使用这些值更新另一个表.也许是这样的:
UPDATE Table SET col1, col2
SELECT col1, col2
FROM other_table
WHERE sql = 'cool'
WHERE Table.id = other_table.id
Run Code Online (Sandbox Code Playgroud) 如果不存在,我需要添加一个特定的列.我有类似以下内容,但它总是返回false:
IF EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'myTableName'
AND COLUMN_NAME = 'myColumnName')
Run Code Online (Sandbox Code Playgroud)
如何检查SQL Server数据库的表中是否存在列?
t-sql sql-server sql-server-2008 sql-server-2012 sql-server-2016
SELECT GETDATE()
Run Code Online (Sandbox Code Playgroud)
返回: 2008-09-22 15:24:13.790
我希望那个日期部分没有时间部分: 2008-09-22 00:00:00.000
我怎么能得到它?
我有一组数据要一次插入,比如4行.
我的表有三列:Person
,Id
和Office
.
INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");
Run Code Online (Sandbox Code Playgroud)
我可以Person
在一个单独的所有4行Id
?
我该怎么办SELECT * INTO [temp table] FROM [stored procedure]
?不FROM [Table]
,没有定义[temp table]
?
Select
所有数据都可以BusinessLine
正常tmpBusLine
工作.
select *
into tmpBusLine
from BusinessLine
Run Code Online (Sandbox Code Playgroud)
我尝试相同,但使用stored procedure
返回数据,并不完全相同.
select *
into tmpBusLine
from
exec getBusinessLineHistory '16 Mar 2009'
Run Code Online (Sandbox Code Playgroud)
输出消息:
消息156,级别15,状态1,行2关键字'exec'附近的语法不正确.
我已经阅读了几个创建一个与输出存储过程结构相同的临时表的例子,它工作正常,但不提供任何列会很好.
LEFT JOIN
和之间有什么区别LEFT OUTER JOIN
?
我如何IF...THEN
在SQL SELECT
声明中执行?
例如:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
Run Code Online (Sandbox Code Playgroud) 我需要使用其"父"表中的数据更新SQL Server 2005中的此表,如下所示:
拍卖
id (int)
udid (int)
assid (int)
Run Code Online (Sandbox Code Playgroud)
UD
id (int)
assid (int)
Run Code Online (Sandbox Code Playgroud)
sale.assid
包含要更新的正确值ud.assid
.
什么查询会这样做?我在考虑,join
但我不确定是否可能.
从相当大的SQL Server
表中删除重复行的最佳方法是什么(即300,000多行)?
当然,由于RowID
身份字段的存在,行不会是完美的重复.
MyTable的
RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null
Run Code Online (Sandbox Code Playgroud) 我继承了一个相当大的SQL Server数据库.考虑到它包含的数据,它似乎占用了比我预期更多的空间.
有没有一种简单的方法可以确定每个表占用的磁盘空间大小?
sql-server ×10
t-sql ×10
sql ×6
case ×1
date ×1
datetime ×1
duplicates ×1
if-statement ×1
insert ×1
left-join ×1
outer-join ×1
select ×1
sql-update ×1