标签: sql-server

如何考虑中间的其他行来计算重复的行

对于 SQL Server 2008 R2 对以下内容提出单个查询似乎具有挑战性:给定列 a 和 b 的示例:

a |   b
-------------
0 |  2000
1 |  2001
1 |  2002
1 |  2003
2 |  2004
3 |  2005
1 |  2006
1 |  2007
4 |  2008
1 |  2009
Run Code Online (Sandbox Code Playgroud)

目标:标记具有重复列 a 的行,并在考虑到其他值的情况下为它们指定唯一编号。结果应在 c 列中。注意这里最困难的部分是用 2 & 5 & 7 填充列 c。

a |  b   |  c
-------------
0 |  2000 | 1
1 |  2001 | 2
1 |  2002 | 2
1 | …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2

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

错误:未关闭的引号后

WHILE (@7DaysEarlierPartitionIntegerId <= @CurrentPartitionIntegerId)
    BEGIN
        Set @7DaysEarlierPartitionId 
            = CAST(@7DaysEarlierPartitionIntegerId AS char)
        set @sqlCommand 
            = 'Select * from ' 
              + quotename(@RequestUsage_Partition + @7DaysEarlierPartitionId)
              + 'where UserLogin like''r2\rohit.kharade'
        exec(@sqlCommand)
        set @7DaysEarlierPartitionIntegerId 
            = @7DaysEarlierPartitionIntegerId + 1
    END
Run Code Online (Sandbox Code Playgroud)

我收到错误:

字符串 'r2\rohit.kh' 后的非封闭引号。

如何执行 exec 命令 UserLogin =%r2\rohit.kharade%

sql-server t-sql

0
推荐指数
2
解决办法
916
查看次数

如何在 SQL Server 中添加 1100 列

我在一个表中需要 1100 列。我在同一个表中已经有 928 列,现在我需要添加新的 150 列。

我知道 SQL Server 最多允许 1024 列。

现在我不会创建新表。如果我创建新表并加入我的 require 表,我需要在很多地方进行更改,这对我来说是不可能的。所以我想在同一个表中添加所有列(需要表)。我知道这很难执行这个表,但目前我需要满足这个要求。

sql-server

0
推荐指数
4
解决办法
9915
查看次数

SQL Server:如何防止通过公开视图修改数据?

我有一个数据库: DB 1

在另一个数据库中DB 2,我想创建一堆引用DB 1. 这些视图会相对复杂,有很多连接、聚合、子查询等。

我不希望 的用户DB 2能够修改DB 1. 即我不希望用户能够在视图上执行插入、更新、删除查询。

这篇博文:http : //sqlhint.com/sqlserver/views/creating-readonly-views

建议我可以使用INSTEAD子句。除了特定用户之外,我更愿意仅禁止视图本身的某些查询子句。这可能吗?

security sql-server view

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

为什么 SQL Server 使用 .bak 扩展名?

我用谷歌搜索过,但找不到任何有关它的信息。我想知道为什么 SQL Server 默认使用 .bak 扩展名。

我知道有很多不同的软件使用 .bak 扩展名,不仅仅是 SQL Server。

另一个问题,是否还有其他文件格式可用于备份文件?

sql-server backup

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

SQL 2005 未使用的过程

我正在尝试获取整个 SQL 服务器中未使用过程的列表。我已经完成了获取所有过程的列表,现在我正在使用以下脚本来确定使用了哪些过程。

DECLARE @command varchar(1000) 
SELECT @command = 

'USE [?] SELECT

qt.text AS "SP Name", 
qs.execution_count AS "Execution Count", 
qs.max_logical_reads, 
qs.max_logical_writes, 
qs.creation_time,
DB_NAME() as DatabaseName,
DATEDIFF(Minute, qs.creation_time, GetDate()) AS "Age in Cache"
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
ORDER BY qt.text DESC'

EXEC sp_MSforeachdb @command 
Run Code Online (Sandbox Code Playgroud)

我知道这只会显示重启后使用过的程序。数据似乎有些作用 - 然而;我遇到的问题是它似乎显示了整个程序文本 IE:

CREATE PROCEDURE dbo.proc_MSS_PropagationGetQueryServers AS
DECLARE @Temp table(ServerID int, SearchServerName nvarchar(31), IndexDirectory nvarchar(260),
MachineStatus int, LastPropagationTime datetime,
PropagationStatus int ) INSERT INTO @Temp
SELECT SearchServerDirectory,
LastPropagationTime Index,LastPropagationMachineName 1 …

sql-server-2005 sql-server stored-procedures t-sql

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

T-SQL 或 PowerShell 将超过 2 天的 bak 文件移动到另一个位置

我使用的是 SQL Server 2005。我的一个备份驱动器已满,所以我想移动 2 天之前的备份。

我正在考虑创建一个每天运行的作业,但卡在了移动.bak文件的脚本上。

您知道从驱动器 A 移动文件并将其移动到共享位置的脚本吗?我的.bak文件没有时间戳。

sql-server-2005 sql-server powershell t-sql disk-space

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

缩小数据库有什么缺点吗?

我的生产服务器的数据库意外增长,我几乎要创建一个作业来缩小每月运行一次的数据库。这是个好主意吗?

备份失败并且记录了大量事务的失败时间,这使数据库迅速增长。

我正在使用 SQL Server 2008 R2。

sql-server shrink sql-server-2008-r2

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

将数据库备份到新文件夹中

我正在编写一个脚本,该脚本将创建一个新文件夹并将所有数据库备份到该文件夹​​中。该脚本将生成新文件夹,但不会将备份保存到该文件夹​​中。我不确定我错过了什么。先感谢您。

DECLARE @name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name
DECLARE @DirTree TABLE (subdirectory nvarchar(255), depth INT)


SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 


SET @path = '\\noc2-storage\IT_Backup\Weekly_SQL\CDADB1\' + @fileDate;


DECLARE db_cursor CURSOR FOR  
SELECT name 
FROM master.dbo.sysdatabases 
WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases


OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   


WHILE @@FETCH_STATUS = 0   
BEGIN   
IF NOT EXISTS …
Run Code Online (Sandbox Code Playgroud)

sql-server backup

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

什么时候复制数据进行查询有意义

我有以下表格设计。

一个Event表,带有用于保存事件元数据的辅助表。

每个事件行具有事件类型柱(regular_eventrecurring_routetimed_messages等。)

每个事件类型都有自己的表来定义有关事件的不同内容 - 包括用户。问题是它可能被多对多表 ( users_regular_events) 或第三个表或第四个表( )直接引用events -> recurring_routes -> recurring_routes_stations -> recurring_stations -> recurring_stations_users -> users

创建一个users_events表来复制某些事件之间的关系是否有意义?因为,目前如果我想向每个用户展示他的事件,我将不得不加入多个表。也许我需要重新考虑我的整个设计?

database-design sql-server

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