标签: sql-server-2012

生成脚本 - 仅限数据 - 发现循环依赖性错误

我正在尝试生成数据库中所有数据的脚本,因此我可以将数据移动到另一台服务器上的相同数据库.在SQL Server 2012中,我右键单击源数据库

任务>生成脚本>脚本整个数据库和所有数据库对象>高级>脚本的数据类型:仅限数据

这给了我一个关于Cyclic依赖的错误.如果我将数据类型更改为脚本到架构和数据,它会生成正常的.如何解决此问题仅适用于数据?

操作结果从MyDatabase获取对象列表失败

详细报告:

Microsoft.SqlServer.Management.SqlScriptPublish.SqlScriptPublishException:脚本编写对象时发生错误.---> Microsoft.SqlServer.Management.Smo.SmoException:找到循环依赖项.在Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.DependencyGraphTraversal(Int32 num,Dictionary 2 dictionary, List1 sortedList,HashSet 1 visited, HashSet1 current)在Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.DependencyGraphTraversal(Int32 num,Dictionary 2 dictionary, List1 sortedList,HashSet 1 visited, HashSet1 current)在Microsoft .SqlServer.Management.Smo.SmoDependencyOrderer.DependencyGraphTraversal(的Int32 NUM,字典2 dictionary, List1排序列表,HashSet的1 visited, HashSet1电流)Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.DependencyGraphTraversal(的Int32 NUM,字典2 dictionary, List1排序列表,HashSet的1 visited, HashSet1电流)Microsoft.SqlServer 2 dictionary) at Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.SortDataSet(DataSet ds) at Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.SortDataSet(List.Management.Smo.SmoDependencyOrderer.SortDictionary (Dictionary 1 objectList,Dictionary 2 idDictionary, DataSet ds) at Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.ExecuteQueryUsingTempTable(List1 objectList,List 1 urns 1 list, String query) at Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.ResolveTableOnlyDependencies() at …

ssis sql-server-2012

23
推荐指数
3
解决办法
8243
查看次数

ExecuteSqlCommand和SqlQuery有什么区别?什么时候进行数据库访问?

我有几个关于如何从我的数据库访问数据的建议:

var allMyIds
    = context.Database.ExecuteSqlCommand("select id from AspNetUserLogins");

var allMyIds
    = context.Database.SqlQuery<string>("select id from AspNetUserLogins");
Run Code Online (Sandbox Code Playgroud)

如果有人可以解释这些之间的区别吗?

c# asp.net entity-framework sql-server-2012 entity-framework-6

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

MVC 4 Connectionstring到SQL Server 2012

我使用Visual Studio 2012在C#中创建了一个全新的MVC 4应用程序.我正在尝试连接到一个全新的SQL Server 2012(标准)实例,但我似乎无法正确设置我的连接字符串.

我的Web.config中的连接字符串:

  <connectionStrings>
    <add name="ConnectionStringName"
        providerName="System.Data.SqlClient"
        connectionString="Data Source=MyServerName;
                          Initial Catalog=MyDatabaseName;
                          Integrated Security=False;
                          User ID=MyUserID;Password=MyPassword;
                          MultipleActiveResultSets=True" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

每次从Visual Studio中进入ASP.NET配置时,页面都会加载,但只要我点击"安全性",我就会收到以下消息:

您选择的数据存储存在问题.这可能是由无效的服务器名称或凭据或权限不足引起的.它也可能是由未启用角色管理器功能引起的.单击下面的按钮可重定向到可以选择新数据存储的页面.

以下消息可能有助于诊断问题: 无法连接到SQL Server数据库.

我已经验证我的凭据是正确的(我可以使用它们通过SQL Management Studio进行连接).还有什么我可以检查的吗?我很难过.

更新:

我无法从SQL Management Studio(MSSQLSERVER)中连接到我的默认实例,因此我重新安装了SQL,创建了一个命名实例(LHSQLSERVER).现在我可以在SQL Management Studio中连接到该实例,但我仍然从ASP.NET配置中获得相同的错误.

另外需要注意的一点 - 我运行的aspnet_regsql工具来自Framework64\v4.0.30319文件夹.如果我使用.NET 4.5,这是正确的吗?

更新2:

我已经尝试用连接字符串替换连接字符串到我知道有效的远程站点(即mysite.winhost.com),但我仍然在ASP.NET网站配置工具中得到相同的错误?FWIW我也使用Windows 8,但我认为这不重要.

还有什么我可以检查的吗?

更新3:

我发现这篇帖子说你不再需要用于MVC 4的aspnet_regsql工具了,所以我重新运行了删除所有设置的工具,但是再一次,没有运气.有没有人以前用MVC 4做过这个?

更新4:

有关我找到的解决方案,请参阅下面的答案.

c# asp.net-mvc-4 .net-4.5 sql-server-2012 visual-studio-2012

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

如何在VS 2012中的SQL Server数据库项目中存储静态数据

我正在尝试使用SQL Server数据库项目来保留我们所有的表,存储过程,视图等脚本.我现在想要能够保留所有参考(或静态)数据.当工具或项目运行时,它将安装所有数据库对象并插入所有参考数据.

我在vs 2010中找到了类似的文章,但他们使用的是Team Edition for Database专业人员.

  • 让我们的数据库受源代码控制.
  • 将本地开发DB与源代码管理中的最新版本同步.
  • 使用Visual Studio 2012和SQL Server 2012
  • 尽可能使用.Net工具,而不是像Redgate那样(Redgate很棒,但是如果我可以在VS 2012中使用工具的话我还不想要它)

database version-control sql-server-2012 visual-studio-2012

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

序列作为列的默认值

我已经创建了一个序列:

create sequence mainseq as bigint start with 1 increment by 1
Run Code Online (Sandbox Code Playgroud)

如何将此序列用作列的默认值?

create table mytable(
    id      bigint not null default mainseq     -- how?
    code    varchar(20) not null
)
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sequence sql-server-2012

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

SQL Update - 多列

我想基于第二个表中Select的值使用语句更新表中的多个列,以获取如下值:

UPDATE tbl1 
SET (col1, col2, col3) = (SELECT colA, colB, colC 
                          FROM tbl2 
                          WHERE tbl2.id = 'someid') 
WHERE tbl1.id = 'differentid'
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不可能"设置"多个列名称 - 是否有替代方法而不是为每列编写单独的更新语句?

UPDATE tbl1 
SET col1 = (SELECT colA FROM tbl2 WHERE tbl2.id = 'someid') 
WHERE tbl1.id = 'differentid'

UPDATE tbl1 
SET col2 = (SELECT colB FROM tbl2 WHERE tbl2.id = 'someid') 
WHERE tbl1.id = 'differentid'

UPDATE tbl1 
SET col3 = (SELECT colC FROM tbl2 WHERE tbl2.id = 'someid') 
WHERE tbl1.id = 'differentid'
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2012

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

ANSI_NULLS和QUOTED_IDENTIFIER杀死了一些东西.它们适用于什么?

注意:我检查了理解QUOTED_IDENTIFIER并且它没有回答我的问题.

我让我的DBA运行我在Prod服务器上制作的索引(他们查看并批准了它).

它就像我想要的那样加速了我的查询.但是,我开始遇到这样的错误:

UPDATE失败,因为以下SET选项具有不正确的设置:ANSI_NULL,QUOTED_IDENTIFIER,CONCAT_NULL_YIELDS_NUL

作为开发人员,我通常会忽略这些设置.它从来都不重要.(9年以上).好吧,今天很重要.

我去看了一个失败的sprocs,它在创建sproc之前有这个:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Run Code Online (Sandbox Code Playgroud)

任何人都可以从应用程序开发人员的角度告诉我这些set语句的作用是什么? (在我的索引创建语句之前添加上面的代码并没有解决问题.)

注意:以下是我的索引的示例:

CREATE NONCLUSTERED INDEX [ix_ClientFilerTo0]
ON [ClientTable] ([Client])
INCLUDE ([ClientCol1],[ClientCol2],[ClientCol3] ... Many more columns)
WHERE Client = 0


CREATE NONCLUSTERED INDEX [IX_Client_Status]
ON [OrderTable] ([Client],[Status])
INCLUDE ([OrderCol1],[OrderCol2],[OrderCol3],[OrderCol4])
WHERE [Status] <= 7
GO
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

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

我该如何清理SSISDB?

当我设置它时,我忽略了保留期.我的数据库变得非常大,所以我希望减小它的大小.如果我只是更改保留期(它是365),则会导致SSIS运行我的包时出现问题.我甚至以小增量更改了它,但删除语句会创建阻止新作业运行的锁.

任何想法如何解决这个问题?我想过要创建一个新的SSISDB.

ssis sql-server-2012

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

代码首先自定义SQL迁移超时异常

我试图通过执行自定义Sql使用Entity Framework Migration创建FULL TEXT索引.

我的迁移类看起来像这样:

public partial class DocumentContentFullTextIndex : DbMigration
{
    public override void Up()
    {
        AlterColumn("dbo.Attachments", "ContentType", c => c.String(maxLength: 260));

        Sql("CREATE FULLTEXT CATALOG FullTextIndexes AS DEFAULT;", true);

        Sql(@"CREATE FULLTEXT INDEX ON [Attachments](
Content
    TYPE COLUMN ContentType
    Language 'ENGLISH'
)
KEY INDEX [PK_dbo.Attachments]
ON FullTextIndexes;", true);
    }

    public override void Down()
    {
        AlterColumn("dbo.Attachments", "ContentType", c => c.String(maxLength: null));

        Sql("DROP FULLTEXT INDEX ON [Attachments]");
        Sql("DROP FULLTEXT CATALOG FullTextIndexes");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我从MSSQL管理工作室运行它时,一切都很完美,SQL完全符合我的预期.

但是当从迁移项目运行时,第二个Sql请求会触发异常

超时已过期.操作完成之前经过的超时时间或服务器没有响应.

带-Verbose标志的完整堆栈跟踪:

Update-Database -ConnectionStringName DatabaseContext -Verbose
Using …
Run Code Online (Sandbox Code Playgroud)

full-text-indexing sql-server-2012 ef-migrations entity-framework-6

22
推荐指数
2
解决办法
8505
查看次数

从SQL Server获取今天的最后30天记录

我对SQL Server有一个小问题:如何从这个表中获取最近30天的信息

样本数据:

Product:

Pdate
----------
2014-11-20
2014-12-12
2014-11-10
2014-12-13
2014-10-12
2014-11-15
2014-11-14
2014-11-16
2015-01-18
Run Code Online (Sandbox Code Playgroud)

基于此表数据,我想要输出如下

pdate
-------
2014-11-20
2014-12-12
2014-12-13
2014-11-16
Run Code Online (Sandbox Code Playgroud)

我试过这个查询

SELECT * 
FROM product 
WHERE pdate >= DATEADD(day, -30, getdate()).
Run Code Online (Sandbox Code Playgroud)

但它现在给出了确切的结果.请告诉我如何在SQL Server中解决此问题

sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

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