在SQL Server中可能有这样的拼接字符串需求,需要将查询出来的一列拼接成字符串,如下案例所示,我们需要将AddressID <=10的AddressLine1拼接起来,分隔符为|.如下截图所示.这种方式看起来似乎没有什么问题,而且简单测试也是OK: USE AdventureWorks2014; GO DECLARE @address_list NVARCHAR(MAX); SET @address_list ='';   SELECT @address_list = @address…
原文:SQL Server解惑--为什么你的查询结果超出了查询时间范围 废话少说,直接上SQL代码(有兴趣的测试验证一下),下面这个查询语句为什么将2008-11-27的记录查询出来了呢?这个是同事遇到的一个问题,个人设计了一个例子. USE AdventureWorks2014; GO SELECT *  FROM [Person].[Person] WHERE ModifiedDate >= '2008-11-26 00:00:00:000'   AND ModifiedDate <= '…
本文主要摘自徐海蔚的<Microsoft SQL SERVER企业级平台管理实践> 表变量可以作为存储过程的返回参数,而临时表不行.(存疑?表值参数只在SQL SERVER2008才开始支持,并且限制很多,要首先定义表类型) use [test] go create type [user] as table(id int,name varchar(50)); go create procedure test_prd @u [user] readonly as begin select * fr…
关于SQL Server数据库中的对象命名的唯一性问题.例如表.索引.约束等数据库对象,有时候DBA在做数据库维护时,经常要创建对象或重命名对象,此时就会遇到一个问题,对象命名的唯一性问题.虽然是一个小小的问题,估计不少人搞不清,在看文章前,你可以先回答几个问题 1: 表名在数据库是不是唯一? 不同的Schema下,是否可以存在同名的表? 2: 索引名在数据库是不是唯一? 不同的Schema下,是否可以存在同名的表? 3: 其它数据库对象呢? 例如约束.触发器. 那么我们接下来看看实验例子吧,如…
  1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table 'TEST'. Only one identity column per table is allowed." CREATE TABLE dbo.TEST (     ID        INT IDENTITY(1,1) ,     NAME        VARCHAR(32) );   AL…
在SQL Server的查询条件中,能否在IN里面使用变量呢? 如果可以的话,有没有需要注意的地方或一些限制呢?在回答这个问题前,我们先来看看这个例子: IF EXISTS (SELECT 1 FROM sys.objects WHERE name='TEST' AND type='U') BEGIN     DROP TABLE TEST; END GO CREATE TABLE TEST ( ID INT, NAME VARCHAR(16) ); GO   INSERT INTO dbo.T…
一.系统变量的介绍和使用 1.@@ERROR 变量 2.@@SERVICENAME 变量 3.@@TOTAL_ERRORS 变量 4.@@TOTAL_READ 变量 5.@@VERSION 变量 二.错误函数的介绍和使用 1.错误捕获的使用(try/catch) 2.错误函数使用 3.错误函数的说明 ERROR_MESSAGE():返回错误的描述 ERROR_NUMBER(): 返回错误的错误号 ERROR_SEVERITY(): 返回错误的错误级别 ERROR_STATE():返回错误的错误状…
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这两种方式还是有很多差别的. SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值. 当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法. 下表列出 SET 与 SELECT 的区别.请特别注意红色部分.   set select 同时对多个变量同时赋值 不支持 支…
转自:http://www.cnblogs.com/micheng11/archive/2008/07/08/1237905.html SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这两种方式还是有很多差别的. SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值. 当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET…
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这两种方式还是有很多差别的. SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值. 当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法. 下表列出 SET 与 SELECT 的区别.请特别注意红色部分. set select 同时对多个变量同时赋值 不支持 支持…