小编Cad*_*oux的帖子

SQLCMD,命令行变量和脚本:setvar

运行SQLCMD.exe并为脚本变量提供命令行参数时,我希望命令行上提供的值将覆盖SQL脚本文件中定义的值.

例如

给出以下SQL脚本:

:setvar XXX "SQL script"
print '$(XXX)'
Run Code Online (Sandbox Code Playgroud)

和命令行:

sqlcmd.exe -S <Server> -d <Database> -E -b -i <Script> -v XXX="Batch script"
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

批处理脚本

但输出是:

SQL脚本

这是意图,还是必须:setvar删除SQL脚本中的语句?

:setvar在脚本中提供了语句,因此我可以使用SQLCMD模式在SQL Management Studio中编辑/测试脚本,但是在我的测试和生产环境中从命令行运行脚本.

sql-server sql-server-2005 sqlcmd

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

SQL Server上的高效ISNUMERIC()替换?

所以我只花了5个小时来解决一个问题,原因不仅是旧的不可靠, ISNUMERIC而且看起来我的问题只出现在UDF中ISNUMERIC声明WITH SCHEMABINDING并在存储过程中被调用(我有很多要将其提炼成测试用例的工作,但我的第一个需要是用可靠的东西替换它.

关于良好,有效的替代品的任何建议ISNUMERIC().显然,真正需要的是变化int,money等等,但什么是使用(最好是在T-SQL,因为在这个项目上,我仅限于SQL Server的人,因为这是一个高容量的SQL服务器到SQL Server数据处理任务)?

sql-server user-defined-functions isnumeric

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

IIS7,SQL 2008和ASP.NET MVC安全性

我有一个我正在研究的ASP.NET MVC应用程序.我一直在使用IIS6和SQL 2008 Express在Windows Server 2003上进行开发,一切都运行良好.我最近决定试用Windows 7测试版,所以现在我正在使用IIS7,并且遇到了与我的数据库连接的问题,我似乎无法弄清楚.

我可以很好地运行/调试应用程序,但每当我尝试访问需要访问数据库的页面时,我都会收到以下错误:

"无法打开登录请求的数据库"MyDatabaseName".登录失败.用户'IIS APPPOOL\MyApplicationName'登录失败."

我显然有一些错误的安全配置设置,但我似乎找不到任何关于如何正确设置它的好文档.我试过在数据库上给予NETWORK SERVICE权限,但这似乎不起作用.任何人都知道我需要做什么来给这个数据库"IIS APPPOOL\MyApplicationName"权限?我错过了一些明显的东西吗

谢谢...

security asp.net-mvc iis-7 sql-server-2008

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

是否可以在没有模式名称的情况下调用用户定义的函数?

我正在使用MS SQL 2005,当我创建一个函数时,我需要设置模式名称来调用它:

select dbo.MyFunc
Run Code Online (Sandbox Code Playgroud)

我的所有表都是"dbo"模式,我不需要模式名称来引用它,所以我想知道我是否缺少一些可以对函数执行相同操作的配置.

sql-server schema sql-server-2005

17
推荐指数
3
解决办法
9421
查看次数

如何从SQL服务器解密密码?

我在sql server 2000中有这个查询:

select pwdencrypt('AAAA')
Run Code Online (Sandbox Code Playgroud)

它输出加密的'AAAA'字符串:

0x0100CF465B7B12625EF019E157120D58DD46569AC7BF4118455D12625EF019E157120D58DD46569AC7BF4118455D

如何从其原点(即'AAAA')转换(解密)输出?

sql-server encryption passwords hash

16
推荐指数
3
解决办法
27万
查看次数

如何从sql语句返回常量?

如何从sql语句返回常量?

例如,如果我的(布尔表达式)为真,我将如何更改下面的代码以便"我的消息"将返回

if (my boolean expression)
 "my message"
else
 select top 1 name from people;
Run Code Online (Sandbox Code Playgroud)

我正在使用ms sql 2000

sql t-sql sql-server sql-server-2000

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

SqlBulkInsert - 如何设置Fire触发器,检查约束?

我正在使用具有有限权限的数据库用户,使用C#方法将ADO.NET 2.0 SqlBulkCopy对象批量插入到MS SQL 2005数据库中.当我尝试运行该操作时,我收到错误消息:

批量复制失败.用户对表'theTable'没有ALTER TABLE权限.ALTER TABLE权限是必需上批量复制操作的目标表,如果该表具有触发器或检查约束,但'FIRE_TRIGGERS'还是 'CHECK_CONSTRAINTS'散装提示没有被指定为选项,以批量复制命令.

我阅读了一些文档并使用构造函数创建了批量复制对象,该构造函数允许我指定这样的东西:

    SqlBulkCopy bc = new SqlBulkCopy(
        System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"],
        SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints);
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何东西 - 我得到了和以前一样的错误信息.我尝试摆弄其他一些SqlBulkCopyOptions值,但没有运气.我真的以为这会解决这个问题,我错过了什么吗?

我在表上向用户授予ALTER后测试了该过程,操作成功.但是,这不适合我的情况.

ado.net sql-server-2005 sqlbulkcopy

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

SQL Server 2008备份压缩标准版

我正在尝试在SQL Server 2008中备份数据库,并使用新的压缩功能压缩数据库.但是,当我运行以下代码时,我收到一个奇怪的错误消息:

Backup Database <Database> To Disk 'C:\Backup' With Compression
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

标准版不支持带压缩的备份数据库

这是否意味着我必须升级到完整版或有没有办法在标准版中启用压缩?

sql-server compression backup sql-server-2008

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

为什么这个代码编译没有错误,即使该类被标记为已过时?

这是Visual Studio 2008.显然与扩展的静态类有关.

public class Dummy
{
    public readonly int x;

    public Dummy(int x)
    {
        this.x = x;
    }

    public override string ToString()
    {
        return x.ToString();
    }
}

[Obsolete("Do Not Use", true)]
public static class Extensions
{
    public static int Squared(this Dummy Dummy)
    {
        return Dummy.x * Dummy.x;
    }
}

class Program
{
    static void Main(string[] args)
    {
        var d = new Dummy(42);
        Console.WriteLine(String.Format("{0}^2={1}", d, d.Squared()));
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# attributes obsolete visual-studio-2008

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

我可以在TSQL中使用WITH两次来过滤像我的例子那样的结果集吗?

我需要做这样的事情,但SQL Server 2008不喜欢它.我的查询实际上比这更复杂,我意识到这不是完成我正在做的事情的最好方法,但我的重点是WITH语句的功能而不是select和where语句.

WITH stuff1 AS(从名为startdate> 0的员工中选择名称,startdate,id)

WITH stuff2 AS(从stuff1中选择名称,startdate,id)

select*from stuff2,其中id> 10

sql sql-server common-table-expression

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