标签: sql-server-2008

分配变量时SET与SELECT?

在T-SQL中分配变量时,SETSELECT语句之间有什么区别?

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

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

如何查看活动的SQL Server连接?

我正在使用SQL Server 2008 Enterprise.我想看到任何活动的SQL Server连接,以及所有连接的相关信息,例如从哪个IP地址连接到哪个数据库或其他东西.

是否存在解决此问题的命令?

sql sql-server sql-server-2008

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

如何在SQL Server中截断日期时间?

在SQL Server 2008中截断日期时间值(删除小时分钟和秒)的最佳方法是什么?

例如:

declare @SomeDate datetime = '2009-05-28 16:30:22'
select trunc_date(@SomeDate)

-----------------------
2009-05-28 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

sql-server datetime truncate sql-server-2008

265
推荐指数
4
解决办法
50万
查看次数

如何将表移动到T-SQL中的模式中

我想使用T-SQL将表移动到特定的Schema中?我正在使用SQL Server 2008.

t-sql sql-server schema sql-server-2008 sql-server-2016

262
推荐指数
2
解决办法
15万
查看次数

"防止需要重新创建表的保存更改"负面影响

前言

我今天在SQL Server 2008中修改了一个列,将数据类型从货币(18,0)更改为(19,2).

我收到错误"您所做的更改需要从SQL Server中删除并重新创建以下表".

在您争相回答之前,请阅读以下内容:

我已经知道工具►选项►设计器►表和数据库设计器中有选项►取消选中 "禁止保存需要重新创建表的更改" . 通过五次单击阻止保存需要重新创建表的更改 ......所以不要回答!

实际问题

我的实际问题是针对其他事情,如下:

这样做有任何负面影响/可能的缺点吗?

当取消选中此框时,表是否会被实际删除并自动重新创建?

如果是这样,表格是否复制了源表的100%完全复制品?

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

248
推荐指数
4
解决办法
18万
查看次数

多列的唯一约束

CREATE TABLE [dbo].[user](
        [userID] [int] IDENTITY(1,1) NOT NULL,
        [fcode] [int] NULL,
        [scode] [int] NULL,
        [dcode] [int] NULL,
        [name] [nvarchar](50) NULL,
        [address] [nvarchar](50) NULL,
     CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED 
    (
        [userID] ASC
    )
    ) ON [PRIMARY]

    GO
Run Code Online (Sandbox Code Playgroud)

如何fcode, scode, dcode使用t-sql和/或management studio?为列添加唯一约束?fcode, scode, dcode必须是独一无二的.

sql-server ssms sql-server-2008

240
推荐指数
3
解决办法
18万
查看次数

SQL Server SELECT INTO @variable?

我在我的一个Sql(2008)存储过程中有以下代码执行完全正常:

    CREATE PROCEDURE [dbo].[Item_AddItem]
        @CustomerId uniqueidentifier,
        @Description nvarchar(100),
        @Type int,
        @Username nvarchar(100),
    AS
    BEGIN

        DECLARE @TopRelatedItemId uniqueidentifier;
        SET @TopRelatedItemId = 
        (
           SELECT top(1) RelatedItemId 
           FROM RelatedItems 
           WHERE CustomerId = @CustomerId
        ) 

        DECLARE @TempItem TABLE
        (
            ItemId uniqueidentifier,
            CustomerId uniqueidentifier,
            Description nvarchar(100),
            Type int,
            Username nvarchar(100),
            TimeStamp datetime
        );

        INSERT INTO Item
        OUTPUT INSERTED.* INTO @TempItem
        SELECT NEWID(), @CustomerId, @Description, @Type, @Username, GETDATE()

        SELECT
            ItemId,
            CustomerId,
            @TopRelatedItemId,
            Description,
            Type,
            Username,
            TimeStamp
        FROM
            @TempItem
END
GO
Run Code Online (Sandbox Code Playgroud)

所以你们的问题是有可能做一些事情:

DECLARE @TempCustomer TABLE
(
   CustomerId …
Run Code Online (Sandbox Code Playgroud)

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

235
推荐指数
4
解决办法
75万
查看次数

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

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

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

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

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

检查是否存在行,否则插入

我需要编写一个T-SQL存储过程来更新表中的行.如果该行不存在,请插入它.所有这些步骤都由事务包装.

这是一个预订系统,所以它必须是原子和可靠的.如果交易已提交且预订航班,则必须返回true.

我是T-SQL的新手,不知道如何使用@@rowcount.这是我到现在为止所写的.我在正确的道路上吗?我确信这对你来说很容易.

-- BEGIN TRANSACTION (HOW TO DO?)

UPDATE Bookings
 SET TicketsBooked = TicketsBooked + @TicketsToBook
 WHERE FlightId = @Id AND TicketsMax < (TicketsBooked + @TicketsToBook)

-- Here I need to insert only if the row doesn't exists.
-- If the row exists but the condition TicketsMax is violated, I must not insert 
-- the row and return FALSE

IF @@ROWCOUNT = 0 
BEGIN

 INSERT INTO Bookings ... (omitted)

END

-- END TRANSACTION …
Run Code Online (Sandbox Code Playgroud)

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

226
推荐指数
5
解决办法
48万
查看次数

如何连接到SQL Server 2008 Express的本地实例

我刚刚在Vista SP1计算机上安装了SQL Server 2008 Express.我之前在2005年就已经使用旧的SQL Server Management Studio Express了.我能够连接到我的PC-NAME\SQLEXPRESS实例没有问题(不,PC-NAME不是我的电脑名称;-).

我卸载了2005和SQL Server Management Studio Express.然后,我在我的计算机上安装了SQL Server 2008 Express,并选择安装SQL Server Management Studio Basic.

现在,当我尝试连接到PC-NAME\SQLEXPRESS(使用Windows身份验证时,就像我一直这样),我收到以下消息:

无法连接到PC-NAME\SQLEXPRESS.建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)(Microsoft SQL Server,错误:-1)如需帮助,请单击:http://go.microsoft.com/fwlink?ProdName = Microsoft + SQL +服务器&EvtSrc =&的MSSQLServer EvtID = -1&LINKID = 20476

当我安装SQL Server 2008时,我让它使用SQLEXPRESS作为本地实例名称.据我所知,通过SQL Server配置管理器,SQL Server配置为允许远程连接.

当我访问它提到的帮助链接时,帮助页面提示以下内容:

  • 确保在服务器上启动SQL Server Browser服务.
  • 使用SQL Server外围应用配置工具使SQL Server能够接受远程连接.有关SQL Server表面区域配置工具的详细信息,请参阅服务和连接的表面区域配置.

好吧,据我所知,我的系统上没有SQL Server Browser服务(在MMC中查找一个,找不到一个).

并且SQL Server 2008中不存在SQL Server表面区域配置工具.在您的帮助文档中可以很好地使用Microsoft ;-).

我现在不知道该做什么.在升级到2008之后,我有很多工作,我希望能够完成这项工作(我正在与之合作的人在没有问题的情况下完成并运行它并告诉我这很容易 - 他对数据库的东西也更好了我上午).有谁知道什么可能是错的?我真的很感激.如果我不能在几个小时内完成这项工作,我将回到SQL Server 2005(如果这甚至可以工作,那么......).

编辑:我已经尝试关闭Windows防火墙,这没有帮助.另外,我注意到我的SQL Server 2008安装目录树下没有"数据"目录 - 安装时我可能设置了错误吗?

ssms sql-server-2008

219
推荐指数
9
解决办法
70万
查看次数