Questions tagged «sql»

用于在关系数据库管理系统(RDBMS)中管理数据的数据库语言。请注意,每个数据库实现的SQL都略有不同。请记住也标记您的特定数据库,例如[mysql],[postgres],[mssql]或[oracle]。

3
解决SQL Server /数据库排序规则不匹配的方法是否比更改每一列更简单?
免责声明:我知道这个问题已经被问过一百次了,但是我只是想检查一下,在继续编写并提供大量代码来实现这一目标之前,我没有错过一个更简单的解决方案。 我们的软件使用的数据库最初是为SQL Server 7设计的,因此,创建该数据库的所有脚本都不会为任何字符列指定任何显式排序规则。相反,当数据库创建/还原到SQL Server 2000或更高版本时,每一列都会继承数据库排序规则(恰好是SQL_Latin1_General_CP1_CI_AS因为这是SQL Server 7的默认设置)。 从理论上讲,这没什么大不了的,因为如果我们的数据库是从头开始在客户服务器上创建的,它将继承客户的服务器排序规则(通常是现代安装的默认设置Latin1_General_CP1_CI_AS),并且一切正常。但是,当他们向我们发送数据库备份,或者我们向他们发送数据库备份时,这种情况就无法解决了,无论何时代码尝试访问临时表等,我们或他们都会遇到可怕的排序规则不匹配错误。 我们已经尝试教育客户安装或重建他们的SQL Server实例以使用我们首选的排序规则,但是当然这并不总是会发生,而且也不总是可能。 涉及创建新数据库和复制数据的解决方案对我们而言实际上并不实用,我们需要一个“魔杖”,我们可以在实时数据库中挥动一下魔杖,以就地校正所有列而不会干扰数据。我正在考虑编写一个实用程序来执行此操作,但是由于这将是一项艰巨的任务,因此有人有更简单的建议吗?
8 sql-server  sql 


5
从存储过程中调用sp_start_job
我们的开发人员需要能够从其.Net代码启动SQL Server代理作业。我知道我可以打电话给msdb..sp_start_job来做到这一点,但是我不想给一般用户帐户直接访问运行作业的权限。 我想做的是使用WITH EXECUTE AS子句模拟代理帐户在应用程序的数据库中创建一个存储过程。我们拥有的过程是: CREATE PROCEDURE dbo.StartAgentJob WITH EXECUTE AS 'agentProxy' AS BEGIN EXEC msdb.dbo.sp_start_job N'RunThisJob'; END 但是,当我们运行此命令时,会收到以下消息: The EXECUTE permission was denied on the object 'sp_start_job', database 'msdb', schema 'dbo'. 有任何想法吗?这甚至是在SQL2005中执行此操作的最佳方法吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.