javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

c++-faq

git-checkout

generator

coroutine

spring-mvc

reflection

javascript-objects

html5

analytics

node.js

使用Python使用Windows身份验证连接到MS SQL Server吗?

如何使用Windows身份验证和pyodbc库连接MS SQL Server?

我可以通过MS Access和SQL Server Management Studio进行连接,但无法获得适用于Python的有效连接ODBC字符串。

这是我尝试过的方法(也没有'Trusted_Connection=yes'):

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='[system_name]',
               database='[databasename]')

pyodbc.connect('Trusted_Connection=yes', uid='me',
               driver='{SQL Server}', server='localhost',
               database='[databasename]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               uid='me', pwd='[windows_pass]', database='[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               database='[server_name]\\[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               database='[server_name]\[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}',
               database='[server_name]\[database_name]')
trans by 2020-08-01T15:48:51Z

sql server-基于delimi的T-SQL拆分字符串

我有一些数据要根据可能不存在的分隔符进行拆分。

示例数据:

John/Smith
Jane/Doe
Steve
Bob/Johnson

我正在使用以下代码将此数据拆分为名字和姓氏:

SELECT SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn)-1) AS FirstName,
       SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, 1000) AS LastName
FROM   MyTable

我想要的结果:

FirstName---LastName
John--------Smith
Jane--------Doe
Steve-------NULL
Bob---------Johnson

只要所有行都具有预期的定界符,此代码就可以正常工作,但是当行没有分隔符时会出错:

"Invalid length parameter passed to the LEFT or SUBSTRING function."

如何将其重写才能正常工作?

trans by 2020-07-31T04:29:29Z

触发器-如何在SQL Server 2008 R2表中添加“最近更新”列?

我在SQL Server 2008 R2数据库中有一个表,并且想添加一个名为LastUpdated的列,该列在每次更新行时都会自动更改。 这样,我可以看到每行的最后更新时间。

似乎SQL Server 2008 R2没有像早期版本那样处理这种数据类型,因此我不确定执行此操作的最佳方法。 我想知道如何使用触发器,但是当触发器更新行时会发生什么? 会再次触发触发器吗?

trans by 2020-07-29T15:40:47Z

.net-SQL Server停止加载程序集

我们已经为SQL Server 2008 R2开发了一个程序集。

程序集已经工作了一周。 程序集中的托管存储过程在整个星期中都正常工作,然后停止工作。 我们已经多次看到此问题。 使它再次工作的方法是重新启动SQL Server。

Msg 10314, Level 16, State 11, Line 4
An error occurred in the Microsoft .NET Framework while trying to load assembly id 65536. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE. Run the query again, or check documentation to see how to solve the assembly trust issues. For more information about this error: 
  System.IO.FileLoadException: Could not load file or assembly 'myAssembly, Version=2.0.0.490, Culture=neutral, PublicKeyToken=5963130873dd3a75' or one of its dependencies. Exception from HRESULT: 0x80FC0E21 System.IO.FileLoadException:
  at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
  at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  at System.Reflection.Assembly.Load(String assemblyString)

我在网上找到了不同的文章。

该知识库文件表明我可能已经从另一个SQL Server恢复了数据库,我发誓没有。

该博客说,如果我在SQL Server 2005上安装.NET 3.5,但我的数据库是SQL Server 2008 R2,则可能会遇到此问题,并且在发生此问题时我没有安装任何软件。

要点是它可以持续一段时间。 它只是停止随机工作。 然后,如果我们重新启动SQL Server,它将重新开始工作。 我以为我的服务器内存真的用完了,但是现在,我再次看到了问题。 SQL Server仅使用300MB RAM,而我的服务器具有16GB RAM。 听起来这是不可能的,因为我内存不足。

现在,我想收集有关此问题的更多信息。 我可以打开查看的任何日志吗? 欢迎提供任何有助于解决此问题的建议。

我已经运行了一些SQL查询。

SELECT * from sys.dm_clr_properties
=============================================
directory   C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
version v2.0.50727
state   CLR is initialized

.

SELECT * from sys.dm_clr_appdomains
======================================================
0x0000000087160240  3   mydatabase.dbo[runtime].2   2011-08-12 08:44:08.940 10  1   E_APPDOMAIN_SHARED  1   1

.

SELECT * from sys.dm_clr_tasks
======================================================
0x000000008185A080  0x00000000818562C8  0x0000000000000000  E_TASK_ATTACHED_TO_CLR  E_ABORT_NONE    E_TYPE_ADUNLOAD 0   0
0x00000000818CE080  0x00000000818CA2C8  0x0000000000000000  E_TASK_ATTACHED_TO_CLR  E_ABORT_NONE    E_TYPE_FINALIZER    0   0
0x0000000081AD4C30  0x000000000400D048  0x0000000000000000  E_TASK_ATTACHED_TO_CLR  E_ABORT_NONE    E_TYPE_USER 0   0

.

SELECT * from sys.dm_clr_loaded_assemblies
<returns nothing>

*更新*

在我的SQL Server上,我创建了四个数据库。 他们每个人都附有相同的程序集。 现在,SQL Server拒绝加载程序集,并给了我上面的错误。

SELECT * from sys.dm_clr_appdomains向我显示了那时仅加载了一个应用程序域,并且SELECT * from sys.dm_clr_appdomains向我显示了根本没有加载任何程序集。

然后,我在其他三个数据库上运行了相同的存储过程。 它工作并成功加载了程序集,并成功运行了存储的proc。 执行存储的过程后。 SELECT * from sys.dm_clr_appdomains现在显示仅加载了四个应用程序域,而SELECT * from sys.dm_clr_loaded_assemblies显示我现在加载了三个程序集。

这很有道理。 现在,我希望如果再次在原始数据库中运行存储的proc,它将按原样加载程序集。 你猜怎么了。 不,不是。 它仍然给我同样的错误。 看来此数据库已完全卡住。 解决此问题的唯一方法是重新启动SQL Server。 我希望在系统表的某处有一个标志/锁来阻止它。 我找不到它了。 任何想法都欢迎。

现在,我的SQL Server处于要求我重新启动才能使其再次运行的状态。

*更新(8/31/2011)*

听起来它与数据库的数据库所有者有关。 这有点复杂。 我们有两个站点和两个AD林。 SQL Server计算机已加入目录林A,但数据库所有者来自目录林B。目录林A和目录林B之间的连接不稳定,因为它们位于通过WAN物理连接的两个不同站点中。

将数据库所有者更改为SQL登录名(非Windows帐户)后,到目前为止,我存储的proc可以运行数周,而且不会中断。

如果有人可以解释,我将接受答案。

trans by 2020-07-24T23:54:49Z

显式删除临时表或让SQL Server处理

什么是处理临时表删除的最佳实践。 我已经读到您应该显式处理该放置,并且sql server应该处理该放置....什么是正确的方法? 我总是觉得您应该自己清理在sproc等中创建的临时表。但是,随后我发现其他建议。

任何见识将不胜感激。 我只是担心我没有遵循我创建的临时表的最佳实践。

谢谢,

小号

trans by 2020-07-20T23:20:51Z

sql-重建数据库中的所有索引

我有一个非常大的SQL Server 2008 R2数据库(1.5TB),将在同一张表的列之间复制一些数据。 有人告诉我,该架构具有大量索引,并且想知道是否存在将重建所有索引的默认查询或脚本。 还建议同时更新统计信息吗?

30个表中的每个表都有一个聚集索引和13个非聚集索引

谢谢。

trans by 2020-07-20T20:04:52Z

sql-“此SqlTransaction已完成;它不再可用。” ...配置错误?

我已经从事了大约一天半的时间,并在网络上搜索了许多博客和帮助文章。 我在SO上发现了几个与此错误有关的问题,但我认为它们并没有完全适用于我的情况(或者,不幸的是,在某些情况下,我对它们的理解不够深刻,无法实现:P)。 我不确定我能否描述得足够好以寻求帮助...但是这里是:

我们有一个.NET应用程序来跟踪我们的资源。 有一个导出功能可以将资源复制到时间跟踪系统和计费系统; 这将访问一个存储过程,该存储过程链接到时间和计费数据库。

我最近将计费系统数据库移到了新服务器上(原始服务器:Server 2003 SP2,SQL 2005;新服务器:Server 2008 R2,SQL 2008 R2)。 我有一个指向2008数据库的链接服务器设置。 我更新了存储过程,使其指向2008服务器,然后出现有关MSDTC和RPC的错误([http://www.safnet.com/writing/tech/archives/2007/06/server_myserver.html)。] 我在链接服务器上启用了“ rpc / rpc输出”,并将MSDTC设置为允许网络访问(类似这样的内容:[http://www.sqlwebpedia.com/content/msdtc-troubleshooting)。]

现在,当我尝试运行导出功能时,我得到了上面的内容:“此SqlTransaction已完成;它不再可用。” 在我看来,奇怪的是,当我刚刚运行存储过程(来自SSMS)时,它说成功完成了。

谁看过这个吗? 我是否错过了配置中的某些内容? 我不断浏览相同的页面,唯一发现的是更改了MSDTC之后,我没有重新启动(在此处提到:[http://social.msdn.microsoft.com/forums/en-US/ adodotnetdataproviders / thread / 7172223f-acbe-4472-8cdf-feec80fd2e64 /)。]

我可以发布部分或全部存储过程,如果有帮助的话……请告诉我。

trans by 2020-07-04T21:05:07Z

SQL Server 2008 R2无法连接到Management Studio中的本地数据库

我正在使用SQL Server 2008 R2 Express。

我先安装了SQL Server 2008 R2 Express Management Studio,然后安装了SQL Server 2008 R2 Express。 我正在运行实例SQLEXPRESS,并将其设置为自动。

我正在尝试使用Windows身份验证在本地连接-服务器名称设置为本地,用户名显示为灰色,并设置为我的配置文件用户名。

当我尝试连接时,出现以下错误:

enter image description here

我安装了错误的SQL Server Management Studio吗?

trans by 2020-06-20T02:25:30Z

SQL Server R2 SSR上的Reporting Services权限

尝试在SQL Server 2008 R2上访问SSRS时出现以下错误

我不确定有多少其他人开始使用SQL 2008 R2 SSRS,但是当我尝试访问报表服务器URL时出现以下错误,我遇到了问题

用户没有必需的权限。 验证是否已授予足够的权限,并且Windows用户帐户控制(UAC)   限制已解决

如果以管理员身份运行IE,则可以访问该URL

trans by 2020-02-13T20:01:33Z

sql-如何重写DISTINCT FROM和不是DISTINCT FROM?

如何在不支持它们的SQL实现(例如Microsoft SQL Server 2008R2)中重写包含标准IS DISTINCT FROMIS NOT DISTINCT FROM运算符的表达式?

trans by 2020-02-07T04:34:54Z

SQL Server中的DateTime字段在Ex中无法正确显示

我一天中无数次地将记录从SQL Server Management Studio复制和粘贴到Excel。

我的问题是,即使功能框中正确显示了2013-08-23 16:52:11.493之类的值,例如52:11.5,也无法正确显示,如下图所示。

enter image description here

将数据类型更改为2013-08-23 16:52:11.493可解决显示问题,但这样做很麻烦,因为我要格式化很多日期字段。 由于Excel和SQL Server都是Microsoft产品,因此希望Excel能够正确显示日期字段。

编辑:所以这似乎是Excel的显示问题。 我将Management Studio结果复制到记事本,再从那里复制到Excel,仍然遇到相同的问题。将2013-08-23 16:52:11.493从记事本复制到Excel将显示52:11.5(显示分钟,秒和四舍五入的毫秒)。Excel版本是2010。

有什么想法可以简化吗?

trans by 2020-01-29T14:48:18Z

SQL Server 2008上的唯一键与唯一索引

我有一个名为country_name552的表,并通过在SQL Server 2008 R2上创建类型为“唯一键”的“索引/键”来将country_name列定义为唯一。

但是我有以下问题:

  1. 创建“ Unique Key”类型的“ Index / Key”会自动在此列上创建非聚集索引吗?
  2. 如果我将类型从“唯一键”更改为“索引”,并且将IsUnique的值保留为“是”,那么会有任何区别吗?
  3. 那么为什么我有两个选项“ Unique Key”和“ Index”相同?
trans by 2020-01-27T02:34:11Z

tsql-T-SQL选择查询以删除非数字字符

我在具有可变alpha长度的列中有脏数据。 我只想剔除任何非0-9的内容。

我不想运行函数或proc。 我有一个类似的脚本,只是在文本后获取数字值,看起来像这样:

Update TableName
set ColumntoUpdate=cast(replace(Columnofdirtydata,'Alpha #','') as int)
where Columnofdirtydata like 'Alpha #%'
And ColumntoUpdate is Null

我以为它会很好用,直到我发现某些我认为只是Alpha#12345789格式的数据字段都没有。

需要剥离的数据示例

AB ABCDE # 123
ABCDE# 123
AB: ABC# 123

我只想要123。所有数据字段的编号之前确实都带有#。

我尝试了substring和PatIndex,但是语法不太正确。 有人对解决此问题的最佳方法有何建议?

trans by 2020-01-14T20:46:01Z

sql-使用基于Count的IF ELSE语句执行不同的Insert语句

当我在数据库中搜索时,如果发现某一项不存在,则会运行INSERT语句,如果发现一项或多项,则会运行另一条INSERT语句。

我不确定如何使用IF ELSE表达式。

到目前为止,我有一条声明将计算目标数据出现的次数; 如果大于0,它将打印TRUE;否则,将打印FALSE。 我找不到任何示例来帮助我理解如何使用它来运行两个不同的INSERT语句。

这是我到目前为止的内容:

SELECT CASE WHEN COUNT(*)>0 THEN 'TRUE' ELSE 'FALSE' END
(
  SELECT [Some Column], COUNT(*) TotalCount
  FROM INCIDENTS
  WHERE [Some Column] = 'Target Data'
  GROUP BY [Some Column]
)
trans by 2020-01-06T03:12:06Z

触发器-选项卡上的触发器不能与UPDATE一起使用OUTPUT子句

我正在使用OUTPUT查询执行UPDATE

UPDATE BatchReports
SET IsProcessed = 1
OUTPUT inserted.BatchFileXml, inserted.ResponseFileXml, deleted.ProcessedDate
WHERE BatchReports.BatchReportGUID = @someGuid

这个说法很好。 直到在表上定义触发器为止。 然后我的UPDATE语句将得到错误334:

如果DML语句的目标表'BatchReports'包含不带INTO子句的OUTPUT子句,则该语句不能具有任何启用的触发器

现在,SQL Server团队在博客文章中解释了此问题:

错误消息是不言自明的

他们还提供解决方案:

更改了应用程序以利用INTO子句

除了我无法在整个博客文章中做文章的正面还是反面。

因此,我问一个问题:我应该将UPDATE更改为什么才能起作用?

也可以看看

  • 使用OUTPUT子句进行更新–触发器–和SQLMoreResults
  • 为什么不允许MERGE语句的目标表具有已启用的规则?
  • 语句包含一个OUTPUT子句,而没有INTO子句错误
trans by 2019-11-11T02:20:11Z

错误SQL Server Management Studio中的无效前缀或后缀字符

当我尝试在SQL Server Management Studio 2008 R2中编辑表数据时(右键单击表对象,编辑前200行),我收到此错误:“无效的前缀或后缀字符。(MS Visual Database Tools)”。

trans by 2019-11-10T13:08:26Z

在SQL Server 2008 R2上运行50 MB脚本时出现错误

我正在使用SQL Server 2008 R2,我有一个脚本来更新数据库,该脚本约为50 MB大小,包含大约80万行。

错误:

标题:Microsoft SQL Server Management Studio

无法执行脚本。

附加信息:

内存不足,无法继续执行程序。   (mscorlib)

有人可以帮我运行此脚本而不会出现此错误吗?

trans by 2019-11-07T23:51:26Z

分区函数COUNT()可以使用DISTINCT进行覆盖

我正在尝试编写以下内容,以便获得不同的NumUser的总运行量,如下所示:

NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])

Management Studio对此不太满意。 当我删除OVER关键字时,该错误消失了,但是不会有明显区别。

OVER在分区功能中似乎不可行。我该如何找到不同的计数? 我是否使用更传统的方法,例如相关子查询?

进一步研究一下,也许这些OVER函数与Oracle的工作方式不同,因为它们无法在SQL-Server中用于计算运行总计。

我在SQLfiddle上添加了一个实时示例,尝试使用分区函数来计算运行总计。

trans by 2019-10-05T07:26:58Z

sql server - 带row_number()的SQL更新

我想用增量号更新我的列CODE_DEST。 我有:

CODE_DEST   RS_NOM
null        qsdf
null        sdfqsdfqsdf
null        qsdfqsdf

我想将其更新为:

CODE_DEST   RS_NOM
1           qsdf
2           sdfqsdfqsdf
3           qsdfqsdf

我试过这段代码:

UPDATE DESTINATAIRE_TEMP
SET CODE_DEST = TheId 
FROM (SELECT  Row_Number()   OVER (ORDER BY [RS_NOM]) AS TheId FROM DESTINATAIRE_TEMP)

由于ROW_NUMBER(),这不起作用

我也尝试过:

WITH DESTINATAIRE_TEMP AS
  (
    SELECT 
    ROW_NUMBER() OVER (ORDER BY [RS_NOM] DESC) AS RN
    FROM DESTINATAIRE_TEMP
  )
UPDATE DESTINATAIRE_TEMP SET CODE_DEST=RN

但由于结合,这也行不通。

如何使用SQL Server 2008 R2中的ROW_NUMBER()函数更新列?

trans by 2019-09-08T15:24:00Z

.net - 无法加载文件或程序集Microsoft.SqlServer.management.sdk.sfc版本11.0.0.0

我安装了MS SQL Server 2008 R2,当我尝试在EDMX文件下从数据库更新模型时,我遇到了这个错误。

无法加载文件或程序集Microsoft.SqlServer.management.sdk.sfc   版本11.0.0.0

我试图从这里安装Microsoft SQL Server 2008 R2共享管理对象,但没有乐趣。

trans by 2019-07-07T12:13:45Z

1 2 下一页 共2页