小编car*_*osm的帖子

SQL Server 对象(架构比较与合并)

我们正在尝试维护两个 SQL 环境,比如说开发和暂存。在暂存过程中,我对一个名为 SProc1 的存储过程进行了错误修复,同时开发人员对同一个 sp 进行了一些更改。我需要在开发中应用错误修复,而不丢失开发中的更改。

在 Visual Studio 2015 上使用 SQL Schema Compare 不会合并代码,它只是直接替换版本。

我的问题是,市场上还有哪些其他工具可以维护这种场景?

sql-server

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

获取 SQL Server 中查询的列名

假设我在 SQL 2014 中有一个查询:

SELECT EmployeeName, EmployeeAddress, EmployeeAge FROM dbo.Employee
Run Code Online (Sandbox Code Playgroud)

我想动态地进行查询、循环并获取EmployeeNameEmployeeAddress和 等列的名称EmployeeAge

我需要这个,因为我可以有另一个与此不同的查询,我还需要获取列名。

sql-server sql-server-2014

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

在 SQL Server 中为特定表生成 UPDATE 语句

我想知道是否有一种工具可以UPDATE根据已插入表中的数据生成语句。我知道有MERGE声明,但我想知道我是否可以通过其他方式做到这一点。我正在使用 SQL Server 2014

假设我有一个 TableA:

Id int,
Name nvarchar(50),
Description nvarchar(100),
Active bit
Run Code Online (Sandbox Code Playgroud)

然后我的 TableA 有这个记录和更多:

Id   Name       Description   Active
1    blablabla  sdjfhksj      1
Run Code Online (Sandbox Code Playgroud)

我想为此表上的每一行创建更新语句

Update TableA
   set Name = 'blablabla',
       Description = 'sdjfhksj',
       Active = 1
 where Id = 1
Run Code Online (Sandbox Code Playgroud)

sql-server

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

SQL Server 中的按位运算

我有一列 CategoryId 将在当时存储多个值,其中一些有 1 (BA)、2 (SA) 或 3(两者)。我不确定这是否是正确的方法。

例如,查询向下带来所有记录,因为 3 包括 1 和 2。如果我想要具有两个类别的行,则按位不起作用。我相信我混淆了术语。

示例数据和查询:

CREATE TABLE #Payment (Id INT, Name NVARCHAR(50), CategoryId INT)

INSERT #Payment (Id, Name, CategoryId) VALUES(1, N'A', 1) --BA
INSERT #Payment (Id, Name, CategoryId) VALUES(1, N'B', 2) --SA
INSERT #Payment (Id, Name, CategoryId) VALUES(1, N'C', 3) --BA and SA
INSERT #Payment (Id, Name, CategoryId) VALUES(1, N'D', 2) --SA

DECLARE @Value INT = 3

SELECT *
FROM #Payment
WHERE (CategoryId & @Value) = CategoryId
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server operators bitwise-operators

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

SQL Server-计算两个日期之间的差异月份

有什么方法可以计算两个日期之间的月数?

我有这个

SELECT DATEDIFF(mm, '2015-11-01', '2015-12-01')
Run Code Online (Sandbox Code Playgroud)

但这给我带来了1,实际上我希望它是2,我应该对结果求和1还是有专门针对此的另一个函数?

让我解释一下我需要什么,我有数月和数年,我不在乎日期,因为它总是01,所以每个日期都用yyyy / mm / 01表示,在我的情况下,我确定了一个值,并且该值出现在'2015-11-01'和'2015-12-01',这意味着我有两个月了,现在我需要计算月份数,因此datediff返回1,这对我来说不合适。

sql-server

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

检查谁/何时更新了 SQL Server 中的列

我真的很难向我的同事回答这个问题,有时我们在桌子上进行了更改,但我们不知道谁或何时更改,我有这个查询,但有时并不准确。

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'MYDB') --DB Name
AND OBJECT_ID=OBJECT_ID('MyTable') --Table Name
Run Code Online (Sandbox Code Playgroud)

还有其他准确的方法来回答这个问题吗?

sql-server

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