小编Mic*_*art的帖子

将多个现有.csproj添加到Visual Studio解决方案的简便方法?

我从源代码管理中检查了一个C#代码分支.它包含各种文件夹中的50个项目.没有找到现有的.sln文件.

我打算创建一个空白解决方案来添加现有解决方案.用户界面只允许我一次完成这个项目.

有什么我想念的吗?我想指定一个*.csproj文件列表,并以某种方式提出一个包含所有项目的.sln文件.

projects-and-solutions csproj visual-studio

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

在nvarchar字符串中搜索时,SQL Server使用高CPU

请查看以下示例.它表明在unicode字符串(nvarchar)中搜索几乎是在varchar字符串中搜索的八倍.与隐含转换相提并论.寻找解释.或者更有效地在nvarchar字符串中搜索的方法.

use tempdb
create table test
(
    testid int identity primary key,
    v varchar(36),
    nv nvarchar(36),
    filler char(500)
)
go

set nocount on
set statistics time off
insert test (v, nv)
select CAST (newid() as varchar(36)),
    CAST (newid() as nvarchar(36))
go 1000000

set statistics time on
-- search utf8 string
select COUNT(1) from test where v like '%abcd%' option (maxdop 1)
-- CPU time = 906 ms,  elapsed time = 911 ms.

-- search utf8 string using unicode (uses convert_implicit) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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

如何在SQL Server跟踪中跟踪调用代码?

我想使用SQL Server跟踪来跟踪有关使用数据库的代码的更多上下文.我打算在连接字符串上使用"Application Name"属性.看起来像下面这样:

object CallingObject; //set elsewhere
SqlConnectionStringBuilder connectionString = GetConnectionString();
connectionString.ApplicationName = CallingObject.GetType().ToString();
using (SqlConnection connection = new SqlConnection(connectionString.ToString()))
{
    // do your thing
}
Run Code Online (Sandbox Code Playgroud)

除了大量的结果连接字符串意味着.net的连接池不再有效.

如何在不损失连接池优势的情况下跟踪SQL跟踪中的调用代码?

.net sql-server ado.net

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

此查询是否等同于SQL Server 2008的OPTIMIZE FOR UNKNOWN?

我正在维护SQL Server 2005的存储过程,我希望我能在2008年使用一个允许查询提示的新功能:"OPTIMIZE FOR UNKNOWN"

似乎以下查询(为SQL Server 2005编写)估计相同的行数(即选择性),就像指定了OPTION(OPTIMIZE FOR UNKNOWN):

CREATE PROCEDURE SwartTest(@productid INT)
AS  
DECLARE @newproductid INT
SET @newproductid = @productid

SELECT ProductID 
FROM Sales.SalesOrderDetail 
WHERE ProductID = @newproductid
Run Code Online (Sandbox Code Playgroud)

此查询通过声明和设置新变量来避免参数嗅探.这真的是SQL Server 2005解决OPTIMIZE-FOR-UNKNOWN功能的问题吗?或者我错过了什么?(感谢权威链接,答案或测试结果).

更多信息:对SQL Server 2008的快速测试告诉我,此查询中的估计行数实际上与指定了OPTIMIZE FOR UNKNOWN相同.这是SQL Server 2005上的相同行为吗?我想我曾经记得听过一次没有更多信息,SQL Server优化引擎必须猜测参数的选​​择性(对于不等式谓词,通常为10%).我仍在寻找有关SQL 2005行为的确切信息.我不太确定信息是否存在......

更多信息2:要清楚,这个问题是要求比较UNKNOWN查询提示和我描述的参数屏蔽技术.

这是一个技术问题,而不是解决问题的问题.我考虑了很多其他选择,并坚持这一点.因此,这个问题的唯一目标是帮助我获得两种方法相同的信心.

sql-server sql-server-2005

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

SSRS:某个操作是否可以加载子报表?

我想让用户单击直方图的一列,并让该操作根据该列的属性加载包含的子报表.

这将使SSRS报告更具互动性,更有用.

我注意到在指定操作时,我们得到以下对话框,其中包含"转到报告"而不是"加载子报告".

也许在"转到URL"和javascript中有希望?

在此输入图像描述

sql-server reporting-services ssrs-2008

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

为什么在这种情况下会忽略ConnectTimeout?

运行此代码时:

static void Main(string[] args)
{
    SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
    csb.DataSource = @"8.8.8.8"; // some inaccessible ip address
    csb.InitialCatalog = "Tempdb";
    csb.IntegratedSecurity = true;
    csb.ConnectTimeout = 1;
    DateTime start = DateTime.Now;
    try
    {
        new SqlConnection(csb.ToString()).Open();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    finally
    {
        Console.Write(string.Format("{0} seconds", DateTime.Now.Subtract(start).TotalSeconds));
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct …
Run Code Online (Sandbox Code Playgroud)

sql-server ado.net

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

SQL Server有效地过滤时间不在另一个表的时间附近的行

我有两个表,我正在寻找一个表中的行,其中时间列接近另一个表的时间列中的任何值.(近定义为一分钟内).

这是一个代码示例:

create table temp1
(
    id int identity primary key,
    value datetime not null 
)
GO

create index ix_temp1 on temp1(value, id);
GO

set nocount on
insert temp1 (value) values (DATEADD(second, rand() * 1000000, '20100101'))
GO 15000
Run Code Online (Sandbox Code Playgroud)

表temp2设置相同:

create table temp2
(
    id int identity primary key,
    value datetime not null 
)
GO

create index ix_temp2 on temp2(value, id);
GO

set nocount on
insert temp2 (value) values (DATEADD(second, rand() * 1000000, '20100101'))
GO 15000
Run Code Online (Sandbox Code Playgroud)

这是我的第一次破解(这是非常低效的)

SELECT t1.id, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005

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

有没有简单的方法为SSIS包提供参数?

配置SSIS包参数的最佳方法是什么?(即什么是常见/简单/简单)

我正在开发一个SSIS包,我想指定一个文件夹的位置来监视源文件.我想让那些部署SSIS包的人尽可能简单.

例如,我看到使用dtexecui为连接管理器指定连接字符串很容易,但我没有看到参数的位置.即,没有任何变量显示在"设置值"选项卡中.

我查看了包配置,但似乎它们必须由SSIS开发人员而不是SSIS包运行器/部署者创建(我可能会遗漏一些东西)

sql-server ssis sql-server-2008

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

MySQL到SQL Server的选择语句

我正在将mysql sprocs转换为SQL Server.我在mysql中遇到一个select语句,我不太明白它在做什么,而我的google-fu/so-fu让我失望了.以下是它的要点:

    SELECT AccountType = dbo.functionToGetAccountType() FROM AccountLookup
Run Code Online (Sandbox Code Playgroud)

我没有能力调试原始的mysql.我知道该函数只返回一个值.

如果AccountLookup表中没有行,mysql语句是否将默认值分配给"AccountType"?

谢谢你的时间.

mysql t-sql sql-server

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

请求SQL查询帮助

我试图使用以下查询

Dim sqlQry As String = "SELECT * FROM tblTest where Name=@NM and Rank=@RN"
Run Code Online (Sandbox Code Playgroud)

然后我填写我的dataadapter

Dim dAdt As New SqlDataAdapter(sqlQry, conStr)
Run Code Online (Sandbox Code Playgroud)

但是不知道在where子句之后放置参数的位置.

sql vb.net sql-server ado.net

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

为什么dotnet不会发布System.Data.SqlClient?

我有一个something.csproj项目,像这样:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="System.Data.SqlClient" Version="4.1.0" />
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

和诸如此类的something.cs程序:

using System;
using System.IO;
using System.Data.SqlClient;

namespace SomethingNS
{
    public class Something
    {
       public static void Main()
       {
           var a = new SqlCommand();
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用dotnet 2.0,我执行:

dotnet publish
Run Code Online (Sandbox Code Playgroud)

但是我看不到System.Data.SqlClient.dllat文件夹\bin\Debug\netcoreapp1.0\publish\System.Data.SqlClient.dll吗?

这是为什么?

.net-core

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

如何写Alter Table并添加新列?

我有一个表有3列A,B,C的表也有行.A列是主键.

现在根据新的要求,我需要添加新的D,E和F列.

此外,我需要从列A中删除以前的主键并为列D添加新的主键.

E列和F列为NULL.

请帮我创建alter table语句.

database sql-server oracle

-2
推荐指数
1
解决办法
3571
查看次数