小编Yve*_*esR的帖子

更改SQL Server中所有表的所有列的排序规则

我导入了一个数据库,其中包含一些数据,以便与另一个数

目标数据库具有排序规则Latin1_General_CI_AS,源数据库具有排序规则SQL_Latin1_General_CP1_CI_AS.

我确实将源数据库的排序规则更改为Latin1_General_CI_AS使用SQL Server Management Studio.但是里面的表格和列仍然是旧的整理.

我知道我可以使用以下方法更改列:

ALTER TABLE [table] 
ALTER COLUMN [column] VARCHAR(100) COLLATE Latin1_General_CI_AS
Run Code Online (Sandbox Code Playgroud)

但是我必须为所有表和内部的所有列执行此操作.

在我知道开始编写一个存储过程之前,它读取所有表并在所有类型的列中,varchar并在表和列游标循环中更改它们...

有没有人知道一个更简单的方法,或者是通过运行程序中所有表的脚本执行此操作的唯一方法?

sql-server database-design collate

47
推荐指数
5
解决办法
10万
查看次数

如何设置Visual Studio代码检测并在打开文件时设置正确的编码

我最近开始在服务器系统上使用Visual Studio Code,我没有安装Studio IDE.我非常喜欢它但遇到了问题.当我打开一个文件(之前使用过Notepad ++)时,编辑器检测编码并为我设置它.在Windows服务器上有许多文件windows-1252但仍然vscode只是UTF-8默认使用.

我知道我可以,reopen with encoding Western (Windows 1252)但我经常忘记它,我有时会摧毁一些保存它的内容.

所以我还没有找到任何参数,有没有办法进行vscode检测编码并在打开文件时自动设置?

encoding visual-studio-code

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

ROW_NUMBER OVER(ORDER BY date_column)

我想知道.我有一个复杂的查询,它在大约3秒内在SQL Server 2005 Express版本中运行.

主表有大约300k行.

当我添加

ROW_NUMBER() OVER (ORDER BY date_column)
Run Code Online (Sandbox Code Playgroud)

date_column是一个datetime列需要123秒.

如果我做

ROW_NUMBER() OVER (ORDER BY string_title)
Run Code Online (Sandbox Code Playgroud)

它再次在3秒内运行.

我在datetime列上添加了一个索引.没变.还有123秒.

然后我尝试了:

ROW_NUMBER() OVER (ORDER BY CAST(date_column AS int))
Run Code Online (Sandbox Code Playgroud)

并且查询再次在3秒内运行.

由于转换需要时间,为什么SQL Server的行为如下?

更新:似乎ROW_NUMBER完全忽略我的WHERE语句并为所有可用条目构建行列列表?任何人都可以证实吗?

在这里,我在SQL Management Studio中复制了一个更好的可读(仍然是逻辑:)):

SELECT ROW_NUMBER() OVER (ORDER BY xinfobase.lid) AS row_num, *
FROM xinfobase
LEFT OUTER JOIN [xinfobasetree] ON [xinfobasetree].[lid] = [xinfobase].[xlngfolder] 
LEFT OUTER JOIN [xapptqadr] ON [xapptqadr].[lid] = [xinfobase].[xlngcontact] 
LEFT OUTER JOIN [xinfobasepvaluesdyn] ON [xinfobasepvaluesdyn].[lparentid] = [xinfobase].[lid] 
WHERE (xinfobase.xlngisdeleted=2 
AND xinfobase.xlinvalid=2) …
Run Code Online (Sandbox Code Playgroud)

sql-server performance sql-server-2005-express

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

具有自定义安全扩展的SSRS中的错误订阅传递

我开发了一个自定义安全扩展,以使从我们的Intranet产品到报告服务的单一登录。在我订阅之前,它就像一种魅力。

开发确实像这里建议的那样:http : //msdn.microsoft.com/en-us/library/ms155029.aspx

登录,上传和管理报告有效。每个用户都可以阅读和打开报告。我们还实现了授权并覆盖了此处描述的功能:http : //msdn.microsoft.com/zh-cn/library/ms152800.aspx

管理文件夹,报告也可以。

当我广告订阅以呈现报告以通过电子邮件发送报告时,系统会说用户没有足够的权限通过电子邮件发送报告。

notification!WindowsService_0!1674!10/09/2013-14:02:04:: i INFO: Handling subscription f70f374e-28fa-4ba2-8b0e-6633f1299ee9 to report Projekt Aufwand, owner: rausch, delivery extension: Report Server Email.
library!WindowsService_0!1674!10/09/2013-14:02:04:: i INFO: RenderForNewSession('/Projektverwaltung/Projekt Aufwand')
library!WindowsService_0!1674!10/09/2013-14:02:04:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: , Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: Die dem Benutzer 'rausch' erteilten Berechtigungen reichen zum Ausführen des Vorgangs nicht aus.;
library!WindowsService_0!1674!10/09/2013-14:02:04:: i INFO: Initializing EnableExecutionLogging to 'True'  as specified in Server system properties.
emailextension!WindowsService_0!1674!10/09/2013-14:02:04:: e ERROR: Error sending email. Exception: Microsoft.ReportingServices.Diagnostics.Utilities.RSException: Die dem Benutzer 'rausch' erteilten Berechtigungen …
Run Code Online (Sandbox Code Playgroud)

c# permissions customization reporting-services

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

Rails 7 IRB 控制台插入转义键而不是执行删除命令

我使用的是 Mac 操作系统,自从最新的 Rails 版本以来,删除键不再起作用。

\n
\xe2\x9d\xaf rails -v\nRails 7.0.4\n\xe2\x9d\xaf ruby -v\nruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21]\n
Run Code Online (Sandbox Code Playgroud)\n

当我点击delete而不是删除它插入的字符和当前光标位置时^[[3~

\n

我不知道如何解决这个问题。之前的rails版本没有这个问题。

\n

ruby-on-rails irb terminfo

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

TinyTds 错误:Adaptive Server 连接超时

我们正在使用当前的 tinyTDS gem 0.6.2 在 rails 3.2.12 (ruby 1.9.3) 上运行 ruby​​ on rails 应用程序。

我们使用 MS SQL 2012 或 2014 并面临比平常更多的以下错误消息:

TinyTds::Error: Adaptive Server connection timed out: EXEC sp_executesql [...]
Run Code Online (Sandbox Code Playgroud)

数据库自动关闭已关闭。TCP 套接字超时是默认的 Windows 系统。

应用程序服务器在机器 #1(windows 服务器)上,SQL 服务器在机器 #2(windows 服务器)上。

当我检查连接 (netstat) 时,我为大约 20-30 个用户打开了 250 个连接。我运行 perform.exe 来查看 SQL 服务器上数据和日志磁盘的空闲时间。

database.yml 有连接pool:32reconnect:true.

在我看来,tinyTDS 丢失了连接并且任何异常都阻止了重新连接。

问题是,我如何调试问题以找出问题所在?

更新

我的错,原错误信息属于tinytDS 0.5.x。自从我更新到最新版本后,我额外或改为收到以下错误:

ActiveRecord::LostConnection (TinyTds::Error: DBPROCESS is dead or not enabled: BEGIN TRANSACTION):
Run Code Online (Sandbox Code Playgroud)

ruby sql-server ruby-on-rails tiny-tds

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

为什么我应该避免SQL数据库中的NULL值?

我今天阅读了一个着名的商业供应商提供的针对SQL工具的45个技巧 - 数据库 - 性能提示 - 开发人员文档,有一个提示让我感到困惑:

如果可能,请避免数据库中的NULL值.如果不是,请使用适当的IS NULL和IS NOT NULL代码.

我喜欢使用NULL值,因为对我而言,如果一个值从未设置过或者它0或者是一个值,则会有所不同string empty.所以数据库有这个用于一个porpuse.

那么这个提示是无意义的,还是我应该采取措施来防止在我的数据库表中有NULL值?是否会影响性能,NULL而不是填充值numberstring值?

sql database-design

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

更快的方法在ms sql中输入时间表中的行

我需要填写一个时间表来使用它来加入报告服务中的数据.通常我使用此代码执行此操作:

TRUNCATE TABLE tqTimeTable

DECLARE @CNT int
DECLARE @DATE datetime
DECLARE @END int

SET @CNT  = 1
SET @DATE = 25567 -- 01.01.1970
SET @END  = 20000 -- + 20k days => years 2024

WHILE(@CNT < @END)
BEGIN
  INSERT INTO tqTimeTable (Tag, Monat, Jahr)
  VALUES (DATEADD(day,@CNT,@DATE), MONTH(DATEADD(day,@CNT,@DATE)), YEAR(DATEADD(day,@CNT,@DATE)))
  SET @CNT = @CNT + 1
END;
Run Code Online (Sandbox Code Playgroud)

但这需要一段时间(在我的测试系统大约2分钟),所以我希望有人有同样的问题,并解决它比我更好.当我从.NET连接中激活此语句时,我需要一个更快的解决方案,或者如果没有一个提高我的连接超时.

sql-server performance

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

MS SQL Server 检查已注册程序集的存在

在数据库中,我通常使用基于 XML 的拆分函数版本。后来通过一些研究,我创建了 split 函数的 Assembly CLR 版本。

在数据库更新过程(修补程序)中,我删除所有用户函数,修补数据库,然后再次创建用户函数。由于补丁过程,它将再次恢复拆分功能的 XML 版本。

到目前为止,我检查了 MSDN,但找不到任何提示:如何检查 DLL 是否已注册为数据库内的程序集?

在 Management Studio 中,我可以打开数据库 -> 程序能力 -> 程序集,并且可以看到 DLL(如果已注册)。但我想以编程方式执行此操作,如果 DLL 可用,则在 CREATE FUNCTION 上使用 CLR 版本,否则我想使用 XML 版本来确保拆分函数在任何情况下都可用。

有谁知道这是否可能?

t-sql sql-server .net-assembly

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