小编mar*_*c_s的帖子

如何在更新 (SQL Server) 上设置 IN 值?

快速提问,我确实尝试过谷歌但找不到答案。

我在这里有 3 个单独的查询,我想做SET IN ('price1', 'price2', 'price3')但是当我尝试时出现错误。我该怎么做?

Update apotable
set price1 = '0.00'
where po_number IN ('x', 'y', 'z')

Update apotable
set price2 = '0.00'
where po_number IN ('x', 'y', 'z')

Update apotable
set price3 = '0.00'
where po_number IN ('x', 'y', 'z')
Run Code Online (Sandbox Code Playgroud)

sql-server

1
推荐指数
1
解决办法
570
查看次数

每月备份特定天数 SQL Server

如何使用维护计划或代理作业在 SQL Server(我同时使用 SQL Server 2005 和 2008)上每月仅备份特定日期。我的意思是从每个月的 28 号备份我的数据库到下个月的 08 号等等?

sql-server backup maintenance-plans

1
推荐指数
1
解决办法
1232
查看次数

插入或更新 SQL Server(空间)时的触发器

我正在考虑在实时 SQL Server 空间表上创建一个触发器,当用户执行以下任一操作时,该触发器将更新列:

  1. 创建一个新功能
  2. 更新 GIS 应用程序中要素的几何形状

不幸的是,我只能在创建新功能时更新列,或在更改几何列时更新列,但不能在一个触发器中同时更新这两者。

理想世界 - 属性Updated填充已创建或修改的特定功能的当前日期。

到目前为止,这是我所拥有的仅在创建新功能时才有效的方法:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER *[triggername]* ON *[table]* 
AFTER INSERT,UPDATE
AS BEGIN
    DECLARE @ID VARCHAR(8)

    SELECT @ID = [ID] FROM *[table]*

    UPDATE *[table]*
    SET Updated = GETDATE()
    WHERE [ID] = @ID
END
GO
Run Code Online (Sandbox Code Playgroud)

当几何体改变时这有效

CREATE TRIGGER [triggername] ON [table] 
FOR INSERT, UPDATE 
AS BEGIN
    UPDATE [table] 
    SET [table].Updated = Getdate()
    FROM [table] 
    INNER JOIN deleted d ON [table].id = d.id …
Run Code Online (Sandbox Code Playgroud)

sql-server spatial

1
推荐指数
1
解决办法
3208
查看次数

SQL Server:触发器 FOR DELETE

我想创建一个触发器,它并不如他的名字删除客户Peter。我怎样才能做到这一点?

CREATE TRIGGER trgCUSTOMER ON customer
FOR DELETE
AS
BEGIN
    IF (SELECT name FROM deleted) not like 'Peter'
    BEGIN
        delete from customer where name = (select name from deleted);
    END
END;
Run Code Online (Sandbox Code Playgroud)

trigger sql-server delete

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

为什么要在 SQL 中放置 1 以外的 Identity Increment?

在 SQL Server 中,可以设置标识列的增量不是 1。

在什么情况下你会这样做?

在此处输入图片说明

sql-server

1
推荐指数
1
解决办法
770
查看次数

如何从 SQL Server 中还原的数据库中删除触发器

我正在使用 SQL Server 2008 Management Studio。我.bak从客户那里得到了一个备份文件来解决一个特定的问题。

.bak文件中恢复数据库后,我无法执行任何更改查询或更改主密钥。

在我的新数据库中,在客户端环境 DB 中创建的所有触发器都附加到它。所以得到以下错误。

消息 208,级别 16,状态 1,过程 dbtrg_DBEventsmodel,第 16 行
无效的对象名称“DBMonitor.dbo.ddl_DBEvents”。

有没有办法在恢复的数据库中分离这些触发器?

trigger sql-server restore

1
推荐指数
1
解决办法
763
查看次数

如何在 SQL Server 2008 中使用 mdf 和 ldf 文件还原数据库?

征求专家意见。发生了一件非常不幸的事情。几天前,我们的一台 PC 崩溃了。那台电脑安装了 SQL Server 2008。不幸的是,该服务器上没有运行备份。我们将磁盘发送到数据恢复位置,看起来他们可以恢复某些.mdf.ldf文件。

我们对 1 个特定数据库特别感兴趣。

我的问题是:

  1. 是否可以使用相应的 mdf 和 ldf 文件还原特定数据库?
  2. 我们需要从系统数据库中获得任何 mdfs 吗?我们需要要求数据恢复公司寻找任何其他文件吗?
  3. 将该数据库恢复到新机器的步骤和/或最佳实践。

提前感谢您的帮助。

sql-server-2008

1
推荐指数
1
解决办法
1万
查看次数

如何将表名作为参数传递

我有这个代码

ALTER PROCEDURE [dbo].[tablepass12]
    (@TableName nvarchar(20))
AS
BEGIN
    DECLARE @SQL VARCHAR(8000)

    SELECT @SQL = 'SQLCMD -S ICB3110\SQLEXPRESS -d teena -E -Q "SELECT * FROM "'+@TableName+' -o d:\processing\'+@TableName+'.csv' 

    EXEC MASTER..XP_CMDSHELL @SQL
END;
Run Code Online (Sandbox Code Playgroud)

执行它时,我收到此错误

消息 105,级别 15,状态 1,服务器 ICB3110\SQLEXPRESS,第 1 行
字符串 'AIR_LINE ' 后的未闭合引号。

消息 102,级别 15,状态 1,服务器 ICB3110\SQLEXPRESS,第 1 行
“AIR_LINE”附近的语法不正确。

sql-server sqlcmd

1
推荐指数
1
解决办法
400
查看次数

如何在不重新启动服务的情况下减少 SQL Server 2012 的 RAM 使用量

有没有办法在不重新启动 SQL Server 2012 的情况下减少它的 RAM 使用量?

设置 MAX 内存使用率不是一个选项,因为它会迅速增加到我设置的限制,然后基于此 SQL Server 实例的应用程序正在运行,没有响​​应或工作非常缓慢。

memory sql-server-2012

1
推荐指数
1
解决办法
1万
查看次数

在 SQL Server 中格式化电话号码

我正在使用 SQL Server 2008,我发现此解决方案仅适用于 SQL Server 2012 - 在 SQL Server 2008 中格式化电话号码的等效方法是什么?

FORMAT([PhoneField],'###-###-####')
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server t-sql

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