标签: sql-server-2005

在SQL Server中将varchar转换为uniqueidentifier

我无法控制模式的表,包含一个定义为varchar(50)的列,它以'a89b1acd95016ae6b9c8aabb07da2010'格式存储uniqueidentifiers(无连字符)

我想将这些转换为SQL中的uniqueidentifier,以便传递给.Net Guid.但是,以下查询行不适合我:

select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
Run Code Online (Sandbox Code Playgroud)

并导致:

Msg 8169, Level 16, State 2, Line 1
Conversion failed when converting from a character string to uniqueidentifier.

使用带连字符的uniqueidentifier的相同查询工作正常,但数据不以该格式存储.

是否有另一种(有效的)方法将这些字符串转换为SQL中的uniqueidentifier. - 我不想在.Net代码中这样做.

sql sql-server-2005 uniqueidentifier

97
推荐指数
4
解决办法
23万
查看次数

如何在sql server 2005中使用sql查询更改表中的列顺序?

如何在SQL Server 2005中使用SQL查询更改表中的列顺序?

我想使用SQL查询重新排列表中的列顺序.

sql sql-server-2005

95
推荐指数
8
解决办法
23万
查看次数

如何使用Print Statement打印VARCHAR(MAX)?

我有一个代码是:

DECLARE @Script VARCHAR(MAX)

SELECT @Script = definition FROM manged.sys.all_sql_modules sq
where sq.object_id = (SELECT object_id from managed.sys.objects 
Where type = 'P' and Name = 'usp_gen_data')

Declare @Pos int

SELECT  @pos=CHARINDEX(CHAR(13)+CHAR(10),@script,7500)

PRINT SUBSTRING(@Script,1,@Pos)

PRINT SUBSTRING(@script,@pos,8000)
Run Code Online (Sandbox Code Playgroud)

脚本的长度大约是10,000个字符,因为我使用的print语句最多只能容纳8000个.所以我使用了两个打印语句.

问题是,当我有一个脚本,比如18000个字符,然后我习惯使用3个打印语句.

那么有没有办法可以根据脚本的长度设置打印语句的数量?

sql t-sql sql-server sql-server-2005 sql-server-2008

94
推荐指数
10
解决办法
8万
查看次数

如何查询数据库模式是否存在

作为构建过程的一部分,我们在将代码部署到4个不同的环境时运行数据库更新脚本.此外,由于相同的查询将添加到,直到我们放下一个释放到生产它具有能够给定的数据库上运行多次.像这样:

IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = OBJECT_ID(N'[Table]'))
BEGIN
  CREATE TABLE [Table]
  (...)
END
Run Code Online (Sandbox Code Playgroud)

目前,我在部署/构建脚本中有一个create schema语句.我在哪里查询架构的存在?

schema sql-server-2005

91
推荐指数
3
解决办法
7万
查看次数

是否有必要使用#在SQL Server中创建临时表?

是否有必要#在SQL Server中创建临时表之前使用?

例:

SELECT column1, column2, someInt, someVarChar 
INTO ItemBack1 
FROM table2
WHERE table2.ID = 7
Run Code Online (Sandbox Code Playgroud)

对于ItemBack1,是否需要使用#符号?

如果没有,那么#在创建临时表时有什么用?

sql sql-server sql-server-2005 sql-server-2008

91
推荐指数
2
解决办法
16万
查看次数

通过在不同服务器上的两个数据库中连接两个表来查询数据

在不同服务器上的两个不同数据库中有两个表,我需要加入它们以便进行少量查询.我有什么选择?我该怎么办?

sql database sql-server sql-server-2005 sql-server-2008

89
推荐指数
3
解决办法
27万
查看次数

无法开始分布式事务

我正在尝试对链接服务器运行SQL,但我得到了错误.

BEGIN DISTRIBUTED TRANSACTION
SELECT TOP 1 * FROM Sessions


OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".

Msg 7391, Level 16, State 2, Line 3
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
Run Code Online (Sandbox Code Playgroud)

提供程序返回了两个错误:

错误#1:

Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is …
Run Code Online (Sandbox Code Playgroud)

sql-server msdtc sql-server-2005 distributed-transactions

89
推荐指数
3
解决办法
16万
查看次数

警告:Aqua Data Studio中的聚合或其他SET操作消除了空值

数据为空时出现问题,显示结果时出现警告.如何解决这个问题呢?.如果表中没有数据,如何将空数据更改为0?

这是我的代码: -

SELECT DISTINCT c.username             AS assigner_officer,
                d.description          AS ticketcategory,
                (SELECT Count(closed)
                 FROM   ticket
                 WHERE  assigned_to = c.user_id
                        AND closed IS NOT NULL
                 GROUP  BY assigned_to)closedcases,
                (SELECT Count(closed)
                 FROM   ticket
                 WHERE  assigned_to = c.user_id
                        AND closed IS NULL
                 GROUP  BY assigned_to)opencases
FROM   ticket a
       JOIN ticketlog b
         ON a.ticketid = b.ticketid
       JOIN access c
         ON a.assigned_to = c.user_id
       JOIN ticket_category d
         ON a.cat_code = d.id
       JOIN lookup_department e
         ON a.department_code = e.code 
Run Code Online (Sandbox Code Playgroud)

结果如下: -

 Warnings: ---> 
   W (1): Warning: …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005

89
推荐指数
4
解决办法
25万
查看次数

如何确定ms sql server 2005中的打开/活动连接总数

我的PHP/MS Sql Server 2005/win 2003应用程序偶尔变得非常反应迟钝,内存/ CPU使用率不会出现高峰.如果我尝试从sql management studio打开任何新连接,那么它只是挂在打开的连接对话框中.如何确定ms sql server 2005的活动连接总数

database sql-server connection sql-server-2005

88
推荐指数
4
解决办法
27万
查看次数

什么是SQL Server Profiler中的"审核注销"?

我正在运行数据导入(使用C#/ Linq),当然我正在尝试尽可能优化我的查询.为此,我正在使用SQL Server Profiler在数据库上运行跟踪,我的跟踪由我的SQL登录名过滤(这是一个可以唯一归因于我的数据导入过程的名称).

奇怪的是,我的大多数SQL语句都非常快:) - 很少有查询甚至突破1ms标记.但是我的所有查询之间的间隔是几行,其中EventClass是"审核登录"或"审核注销" - 并且"审核注销"的持续时间可以长达一分钟!

这与我在导入中使用事务的事实有关吗?如果是这样,有没有办法找到哪些是重要的查询,所以我可以清理它们?

c# linq sql-server-2005 sql-server-profiler linq-to-sql

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