标签: sql-server

nvarchar(max)vs NText

在SQL Server 中使用nvarchar(max)vs. NText数据类型有哪些优缺点?我不需要向后兼容性,因此nvarchar(max)在较旧的SQL Server版本中不支持它.

编辑:很显然的问题也适用于TEXTIMAGE对比varchar(max),并varbinary(max)为那些寻找那些数据类型之后.

sql-server text nvarchar sql-server-2005 sql-server-2008

178
推荐指数
5
解决办法
13万
查看次数

是否有可能直接选择EXISTS?

我想知道是否有可能做这样的事情(这不起作用):

select cast( (exists(select * from theTable where theColumn like 'theValue%') as bit)

看起来它应该是可行的,但许多应该在SQL中工作的东西不会;)我已经看到了这方面的解决方法(SELECT 1 where ... Exists ...)但似乎我应该能够将存在函数的结果转换为一点并完成它.

sql t-sql sql-server

178
推荐指数
5
解决办法
9万
查看次数

SQL Server:CROSS JOIN和FULL OUTER JOIN有什么区别?

SQL Server中的CROSS JOIN和FULL OUTER JOIN有什么区别?

他们是一样的,不是吗?请解释.什么时候会使用其中任何一个?

sql-server cross-join full-outer-join

177
推荐指数
8
解决办法
20万
查看次数

更改varchar列的最大长度?

我正在尝试将varchar列的长度从255个字符更新为500而不会丢失内容.我之前已经删除并重新创建了表格,但我从未接触过alter statement,这是我认为我需要用来做这个的.我在这里找到了文档:ALTER TABLE(Transfact-SQL)但是我无法做出正面或反面.

到目前为止,我有以下内容(基本上没有任何遗憾):

alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
Run Code Online (Sandbox Code Playgroud)

我该如何处理?那里有没有更好的文件说明(我做了一些搜索示例声明但是空了)?

sql t-sql sql-server varchar sql-server-2008

177
推荐指数
4
解决办法
30万
查看次数

如何检查SQL Server文本列是否为空?

我正在使用SQL Server 2005.我有一个带有文本列的表,我在表中有很多行,此列的值不为null,但它是空的.试图与''进行比较产生这种反应:

数据类型text和varchar在不等于运算符时不兼容.

是否有一个特殊函数来确定文本列的值是否为空但是为空?

sql-server sql-server-2005 emptydatatext sqldatatypes notnull

176
推荐指数
4
解决办法
37万
查看次数

Sql Server字符串到日期转换

我想转换像这样的字符串:

'10/15/2008 10:06:32 PM'
Run Code Online (Sandbox Code Playgroud)

进入Sql Server中的等效DATETIME值.

在Oracle中,我会说:

TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM')
Run Code Online (Sandbox Code Playgroud)

这个问题暗示我必须将字符串解析为其中一种标准格式,然后使用其中一种代码进行转换.对于如此平凡的行动来说,这似乎是荒谬的.有没有更简单的方法?

t-sql sql-server datetime sql-server-2005 string-to-datetime

176
推荐指数
8
解决办法
88万
查看次数

将主键添加到现有表

我有一个名为的现有表Persion.在这个表中,我有5列:

  • persionId
  • PNAME
  • PMID
  • Pdescription
  • PAMT

当我创建这个表时,我设置PersionIdPname作为主键.

我现在想在主键中添加一个列 - PMID.我怎么写一个ALTER声明来做这个?(我表中已有1000条记录)

sql sql-server constraints primary-key sql-server-2008

176
推荐指数
6
解决办法
60万
查看次数

只有在使用列列表并且IDENTITY_INSERT为ON时才能指定表中标识列的显式值SQL Server

我正在尝试进行此查询

INSERT INTO dbo.tbl_A_archive
  SELECT *
  FROM SERVER0031.DB.dbo.tbl_A
Run Code Online (Sandbox Code Playgroud)

但即使我跑了之后

set identity_insert dbo.tbl_A_archive on
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息

只有在使用列列表且IDENTITY_INSERT为ON时,才能指定表'dbo.tbl_A_archive'中标识列的显式值.

tbl_A是一个巨大的行和宽度表,即它有很多列.我不想手动输入所有列.我怎样才能让它发挥作用?

sql-server

175
推荐指数
7
解决办法
49万
查看次数

将数据插入临时表

创建临时表并声明数据类型之后;

 CREATE TABLE #TempTable(
 ID int,
 Date datetime,
 Name char(20))
Run Code Online (Sandbox Code Playgroud)

然后,如何插入已保存在数据库中物理表上的相关数据?

sql sql-server temp-tables

174
推荐指数
10
解决办法
75万
查看次数

SQL RANK()与ROW_NUMBER()

我对这些之间的差异感到困惑.运行以下SQL会获得两个完美的结果集.有人可以解释一下这些差异吗?

SELECT ID, [Description], RANK()       OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank'      FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

172
推荐指数
4
解决办法
22万
查看次数