我有一个表有几个可以为空的整数列.由于多种原因,这是不可取的,所以我希望将所有空值更新为0,然后将这些列设置为NOT NULL
.除了将空值更改为0
,必须保留数据.
我正在寻找特定的SQL语法来将列(调用它ColumnA
)改为" not null
".假设数据已更新为不包含空值.
使用SQL Server 2000.
我希望这是关于如何使用SQL语句检查SQL Server 2000/2005中是否存在表的最终讨论.
当谷歌找到答案时,你会得到很多不同的答案.这样做是否有正式/后向和前向兼容的方式?
这有两种可行的方法.这两者中哪一个是标准/最佳方式?
第一种方式:
IF EXISTS (SELECT 1
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'
AND TABLE_NAME='mytablename')
SELECT 1 AS res ELSE SELECT 0 AS res;
Run Code Online (Sandbox Code Playgroud)
第二种方式:
IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL
SELECT 1 AS res ELSE SELECT 0 AS res;
Run Code Online (Sandbox Code Playgroud)
MySQL提供简单
SHOW TABLES LIKE '%tablename%';
Run Code Online (Sandbox Code Playgroud)
声明.我正在寻找类似的东西.
IDENTITY
插入行的最佳方法是什么?
我知道@@IDENTITY
和IDENT_CURRENT
和SCOPE_IDENTITY
,但不明白连接到每个利弊.
有人可以解释一下这些差异,以及何时应该使用它们?
使用CROSS APPLY的主要目的是什么?
我已经阅读(模糊地,通过互联网上的帖子),cross apply
如果你正在进行分区,那么在选择大型数据集时可以更有效率.(寻找灵感)
我也知道CROSS APPLY
不需要UDF作为右表.
在大多数INNER JOIN
查询(一对多关系)中,我可以重写它们以供使用CROSS APPLY
,但它们总是给我相同的执行计划.
任何人都可以给我一个很好的例子,告诉我什么时候能有效的CROSS APPLY
情况INNER JOIN
?
编辑:
这是一个简单的例子,执行计划完全相同.(告诉我一个他们不同的地方,哪里cross apply
更快/更有效率)
create table Company (
companyId int identity(1,1)
, companyName varchar(100)
, zipcode varchar(10)
, constraint PK_Company primary key (companyId)
)
GO
create table Person (
personId int identity(1,1)
, personName varchar(100)
, companyId int
, constraint FK_Person_CompanyId foreign key (companyId) references dbo.Company(companyId)
, constraint PK_Person primary key (personId)
) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将insert
一些文本数据放入SQL Server
9中的表中.
该文本包括单引号(').
我怎么逃避?
我尝试使用两个单引号,但它给我一些错误.
例如. insert into my_table values('hi, my name''s tim.');
获取SQL Server上特定数据库中所有表的名称的最佳方法是什么?
是否禁用和启用SQL Server支持的外键约束?或者是我唯一的选择drop
,然后重新create
约束?
我想更新表中的列,在其他表上进行连接,例如:
UPDATE table1 a
INNER JOIN table2 b ON a.commonfield = b.[common field]
SET a.CalculatedColumn= b.[Calculated Column]
WHERE
b.[common field]= a.commonfield
AND a.BatchNO = '110'
Run Code Online (Sandbox Code Playgroud)
但它抱怨:
消息170,级别15,状态1,行2
第2行:'a'附近的语法不正确.
这有什么不对?
我一直在学习函数和存储过程很长一段时间,但我不知道为什么以及何时应该使用函数或存储过程.他们看起来和我一样,也许是因为我对此有点新手.
有人可以告诉我为什么吗?
sql-server ×10
t-sql ×10
sql ×5
alter-column ×1
alter-table ×1
constraints ×1
cross-apply ×1
delimiter ×1
foreign-keys ×1
join ×1
null ×1
performance ×1
sql-function ×1
sql-update ×1