小编Ale*_*win的帖子

为其他数据库中的内部存储过程设置中央 CLR 存储过程/函数存储库库以使用?

我想使用我在 C# CLR 中开发的代码在系统上的所有数据库中使用,这样我就不必将每个数据库都设置为可信赖的并打开 CLR 并在每个数据库中保留一堆相同的代码.

从管理和安全的角度来看,有没有最好的方法来做到这一点?CLR 函数非常基础,如字符串断路器、电子邮件验证、url 编码/解码、base64 等。我希望每个数据库中只有 dbo 模式能够访问这些函数。

  1. 有没有简单的方法可以做到这一点?
  2. 我也不清楚是否嵌入了 CLR dll,如果我移动数据库,它会标记,或者我是否也必须移动 dll。

谢谢

sql-server-2008 sql-server sql-server-2008-r2 c# sql-clr

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

我应该在所有可搜索列上创建一个非聚集索引,还是只在每个列上分别创建一个非聚集索引?

我不确定是否正确使用非聚集索引。SSMS 计划估计器说当以下索引已经在表中时添加另一个索引。

    CREATE NONCLUSTERED INDEX [ix_zone_fetch_shipping] ON [dbo].[tbl_shipping_rates_zones]
    (
        [iso] ASC, [mzone] ASC, [postal] ASC
    )
    INCLUDE
    (
        [region], [zone_dom], [zone_emi], [zone_pmi], [zone_fci],
        [zone_ups], [zone_fed]
    )
Run Code Online (Sandbox Code Playgroud)

我的查询是

SELECT * FROM tbl_shipping_rates_zones WHERE postal = '10001'
Run Code Online (Sandbox Code Playgroud)

我的问题是……我应该为所有可能的查找键创建索引吗?我在不同的查询中按 mzone、iso 和 postal 进行搜索。

谢谢

sql-server nonclustered-index

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

我需要帮助使用hierarchyid 数据类型并需要对 varchar 字段的唯一约束

我想使用hierarchyid标识符将一堆具有父->子->孙关系的表解析为单个表。这是我根据我所拥有的得出的。

    CREATE TABLE [dbo].[tbl_server_group]
    (
        [refid]     [int] IDENTITY(1,1) NOT NULL,
        [refhid]    [hierarchyid] NOT NULL,
        [reflvl]    AS refhid.GetLevel() PERSISTED,
        [refdate]   [datetime] NOT NULL DEFAULT GETDATE(),
        [refname]   [varchar](50) NOT NULL
    )
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要能够要求 refname 是唯一的,但只能在它所在的容器内。由于我使用它来表示服务器,我想模拟各种 DNS 树,但添加其他层它也是。我的例子如下:

    ROOT
    | something.com
    || www
    ||| index.html
    || staging
    ||| testbed.php
    | someotherthing.com
    || test
    ||| index.html
Run Code Online (Sandbox Code Playgroud)

我想确保something.com 只有一个“www”,而www 只有一个“index.html”。

有没有办法用约束来做到这一点?如果没有,是否有一种有效的方法来强制唯一性?

谢谢

sql-server-2008 sql-server constraint hierarchy

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

如何通过 tcp/ip 为远程数据库指定链接服务器?

我有一个在 IAAS 提供程序上运行的远程数据库,我需要能够从我的本地工作站执行联合查询。我遇到了麻烦,因为当我尝试创建链接时,它试图使用命名管道进行连接。

我使用 SQL Server Native Client 10 创建了一个系统 DSN,并向其提供 IP、数据库、用户和密码。测试了它,它很好。

  1. 转到链接服务器并创建新服务器。
  2. 指定名称“MAIN”
  3. 在组合框中选择 SQL Server Native Client 10
  4. 在产品名称字段中输入 SQL Server
  5. 在数据源字段中输入我的 DSN 名称
  6. 在提供者名称字段中输入 SQLNCLI10
  7. 在目录字段中输入我的数据库名称
  8. 转到安全选项并指定我的本地到远程登录配对。

单击“确定”后,我收到一条错误消息,提示它找不到服务器,并显示它正在尝试使用命名管道。

我应该怎么做才能纠正这个问题?

sql-server sql-server-2008-r2 linked-server

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