标签: sql-server

有没有办法在不使用游标的情况下在TSQL中循环表变量?

假设我有以下简单的表变量:

declare @databases table
(
    DatabaseID    int,
    Name        varchar(15),   
    Server      varchar(15)
)
-- insert a bunch rows into @databases
Run Code Online (Sandbox Code Playgroud)

如果我想遍历行,是声明和使用游标我唯一的选择吗?还有另外一种方法吗?

t-sql sql-server loops

234
推荐指数
9
解决办法
61万
查看次数

NOT IN子句和NULL值

当我得到不同的记录计数时,出现了这个问题,我认为是使用not in where约束的相同查询,另一个是a left join.not in约束中的表有一个空值(坏数据),导致该查询返回0个记录的计数.我有点理解为什么,但我可以使用一些帮助来完全理解这个概念.

简单地说,为什么查询A返回结果但B不返回?

A: select 'true' where 3 in (1, 2, 3, null)
B: select 'true' where 3 not in (1, 2, null)
Run Code Online (Sandbox Code Playgroud)

这是在SQL Server 2005上.我还发现调用set ansi_nulls off导致B返回结果.

sql t-sql sql-server null notin

233
推荐指数
10
解决办法
26万
查看次数

varchar和nvarchar SQL Server数据类型之间的主要性能差异是什么?

我正在我的学校使用一个小型网络应用程序的数据库SQL Server 2005.
我在varcharvs 的问题上看到了几个思想流派nvarchar:

  1. 使用varchar除非你处理了很多国际化的数据,然后使用nvarchar.
  2. 只是nvarchar用于一切.

我开始看到视图2的优点.我知道nvarchar确实占用了两倍的空间,但这不一定是一个大问题,因为这只是为几百名学生存储数据.对我而言,似乎最简单的是不要担心它并且只允许一切使用nvarchar.还是有什么我想念的?

sql-server storage varchar nvarchar sql-server-2005

232
推荐指数
10
解决办法
16万
查看次数

尝试插入时,错误,字符串或二进制数据将被截断

我正在运行data.bat文件,其中包含以下行:

Rem Tis batch file will populate tables

cd\program files\Microsoft SQL Server\MSSQL
osql -U sa -P Password -d MyBusiness -i c:\data.sql
Run Code Online (Sandbox Code Playgroud)

data.sql文件的内容是:

   insert Customers
            (CustomerID, CompanyName, Phone)
             Values('101','Southwinds','19126602729')
Run Code Online (Sandbox Code Playgroud)

还有8个类似的行用于添加记录.

当我跑这跟start> run> cmd> c:\data.bat,我收到此错误信息:

1>2>3>4>5>....<1 row affected>
Msg 8152, Level 16, State 4, Server SP1001, Line 1
string or binary data would be truncated.

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>
Run Code Online (Sandbox Code Playgroud)

此外,我显然是一个新手,但是做什么Level #,并且 …

sql sql-server

232
推荐指数
10
解决办法
74万
查看次数

使用存储过程检查字符串是否包含SQL Server 2005中的子字符串

我有一根绳子,@mainString = 'CATCH ME IF YOU CAN'.我想检查这个词是否在ME里面@mainString.

如何在SQL中检查字符串是否具有特定的子字符串?

t-sql sql-server string stored-procedures sql-server-2005

231
推荐指数
2
解决办法
63万
查看次数

SQL Server将自动增量主键添加到现有表

作为标题,我有一个已经填充150000条记录的现有表.我添加了一个Id列(当前为null).

我假设我可以运行查询以使用增量数填充此列,然后设置为主键并启用自动增量.这是正确的方法吗?如果是这样,我如何填写初始数字?

sql-server alter-table primary-key sql-server-2008

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

如何返回表的列名?

如何使用SQL Server 2008返回表的列名?即一个表包含这些列 - id,name,address,country,我想将这些作为数据返回.

sql t-sql sql-server

230
推荐指数
8
解决办法
50万
查看次数

如何在SQL中获取字符串的第一个字符?

我有一个长度为6的SQL列.现在只想获取该列的第一个字符.SQL中是否有任何字符串函数可以执行此操作?

sql sql-server sql-server-2005

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

如何导入大型MS SQL .sql文件?

我使用RedGate SQL数据比较并生成.sql文件,因此我可以在本地计算机上运行它.但问题是该文件超过300mb,这意味着我无法复制和粘贴,因为剪贴板将无法处理它,当我尝试在SQL Server Management Studio中打开该文件时,我收到错误关于文件太大了.

有没有办法运行一个大的.sql文件?该文件基本上包含两个新表的数据.

sql sql-server import

229
推荐指数
5
解决办法
19万
查看次数

MS SQL Server的"之间"是否包含范围边界?

比如可以

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10
Run Code Online (Sandbox Code Playgroud)

选择5和10还是他们被排除在范围之外?

sql sql-server between

229
推荐指数
5
解决办法
25万
查看次数