标签: sql-server-2005

SQL Server标识列值从0开始,而不是1

我有一个奇怪的情况,我的数据库中的一些表从0开始其ID,即使TABLE CREATE具有IDENTITY(1,1).某些表格是这样,但其他表格则不然.它一直工作到今天.

我已经尝试重置标识列:

DBCC CHECKIDENT (SyncSession, reseed, 0);
Run Code Online (Sandbox Code Playgroud)

但是新的记录从0开始.我已经尝试过为所有表做这个,但有些仍然从0开始,有些从1开始.

有什么指针吗?

(我正在使用带有高级服务的SQL Server Express 2005)

sql t-sql identity sql-server-2005 auto-increment

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

交易隔离级别范围

SQL Server 2005中事务隔离级别的作用域规则是什么?我知道不同级别的含义,但不知道如何在手动运行的脚本之外正确应用它们.我找不到生产质量代码中实际使用的指南.

显然,当你使用这样的命令时,范围就开始了:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
Run Code Online (Sandbox Code Playgroud)

但它在哪里结束?如果我在存储过程中设置iso级别然后该proc调用另一个,嵌套的proc是否继承它?更好的是,如果我升级嵌套proc中的iso级别,它是否会进入调用proc?像BEGIN TRAN,ROLLBACK和COMMIT这样的事务命令会有什么不同吗?

当应用程序或代理程序作业调用存储过程时,隔离级别更改是否会以某种方式持续存在?我是否总是必须在每个过程结束时恢复默认的READ COMMITTED?

我会在不同的情况下测试它,但我不知道如何读取当前隔离级别设置的内容.

t-sql sql-server sql-server-2005 isolation-level

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

ExecuteReader:尚未初始化Connection属性

ExecuteReader:尚未初始化Connection属性.

我的编码是

protected void Button2_Click(object sender, EventArgs e)
    {

       SqlConnection conn = new SqlConnection("Data Source=Si-6\\SQLSERVER2005;Initial Catalog=rags;Integrated Security=SSPI");

    SqlDataReader rdr = null;

    try
    {
        // 2. Open the connection
        conn.Open();

        // 3. Pass the connection to a command object
        //SqlCommand cmd = new SqlCommand("select * from Customers", conn);
        SqlCommand cmd=new SqlCommand ("insert into time(project,iteration)
                  values('"+this .name1 .SelectedValue +"','"+this .iteration .SelectedValue +"')");

        //
        // 4. Use the connection
        //

        // get query results
        rdr = cmd.ExecuteReader();

        // print the CustomerID of each …
Run Code Online (Sandbox Code Playgroud)

c# asp.net sql-server-2005

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

具有多个值的CASE IN语句

有没有办法用IN子句制作CASE语句?

SELECT
CASE c.Number
IN ('1121231','31242323') THEN 1
IN ('234523','2342423') THEN 2
END AS Test
FROM tblClient c
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

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

在一个SELECT语句中设置两个标量变量?

我想做这个:

Declare @a int;
Declare @b int;

SET @a,@b = (SELECT StartNum,EndNum FROM Users Where UserId = '1223')

PRINT @a
PRINT @b
Run Code Online (Sandbox Code Playgroud)

但这是无效的语法.如何在一个select语句中设置多个标量变量?我可以:

Declare @a int;
Declare @b int;

SET @a = (SELECT StartNum FROM Users Where UserId = '1223')
SET @b = (SELECT EndNum FROM Users Where UserId = '1223')

PRINT @a
PRINT @b
Run Code Online (Sandbox Code Playgroud)

但这需要两倍的时间.什么是最快的方式?

sql sql-server-2005

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

一种检查SQL 2005中是否存在外键的方法

有没有一种简单的方法来检查表中的列是否存在外键?我正在编写一个脚本,只有当它不存在时才会添加外键.

sql sql-server-2005 foreign-keys

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

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

我遇到了更新存储过程的问题.错误是:

UPDATE失败,因为以下SET选项具有不正确的设置:'QUOTED_IDENTIFIER'.验证SET选项是否正确,以便与计算列和/或查询通知和/或xml数据类型方法的索引视图和/或索引一起使用.

SQL状态:42000本
机错误:1934

遗憾的是,此表没有索引视图,计算列或查询通知.这个存储过程在过去几天运行良好,并且从今天起一直在返回此错误.

是否有任何建议有助于确定问题?

注:如果我设置quoted_identifierON并重新运行CREATE PROCEDURE,这个问题将是固定的(现在).但我想先了解是什么引发了这个问题.

sql-server-2005

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

如何在SQL Server中列出所有带有"WITH NOCHECK"的外键

有没有人知道一个查询列出了应用了"WITH NOCHECK"描述的数据库中的所有外键?(移除它们将提高性能和稳定性).

sql-server sql-server-2005 system foreign-keys

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

如何删除sql-server中的重音和所有字符<> a..z?

我需要对varchar(20)字段进行以下修改:

  1. 用正常字母替换口音(如è到e)
  2. 之后(1)删除所有不在a..z中的字符

例如

'aèàç=.32s df' 
Run Code Online (Sandbox Code Playgroud)

必须成为

'aeacsdf'
Run Code Online (Sandbox Code Playgroud)

是否有特殊的存储功能来轻松实现这一目标?

更新:请提供T-SQL而不是CLR解决方案.这是我临时做的解决方法,因为它暂时适合我的需求,无论如何使用更优雅的方法会更好.

CREATE FUNCTION sf_RemoveExtraChars (@NAME nvarchar(50))
RETURNS nvarchar(50)
AS
BEGIN
  declare @TempString nvarchar(100)
  set @TempString = @NAME 
  set @TempString = LOWER(@TempString)
  set @TempString =  replace(@TempString,' ', '')
  set @TempString =  replace(@TempString,'à', 'a')
  set @TempString =  replace(@TempString,'è', 'e')
  set @TempString =  replace(@TempString,'é', 'e')
  set @TempString =  replace(@TempString,'ì', 'i')
  set @TempString =  replace(@TempString,'ò', 'o')
  set @TempString =  replace(@TempString,'ù', 'u')
  set @TempString =  replace(@TempString,'ç', 'c')
  set @TempString =  replace(@TempString,'''', '')
  set @TempString = …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2005

39
推荐指数
5
解决办法
8万
查看次数

如何在SQL Server 2005中进行upsert(更新或插入)

我有一个表,我在其中为员工插入行,但下次当我想插入行时我不想再插入该员工的数据只是想要更新所需的列,如果它退出那里,如果没有然后创建新行

我们如何在SQL Server 2005中执行此操作?

我正在使用jsp

我的疑问是

String sql="insert into table1(id,name,itemname,itemcatName,itemQty)values('val1','val2','val3','val4','val5')";
Run Code Online (Sandbox Code Playgroud)

如果它是第一次然后将其插入数据库,否则如果存在更新它

怎么做?

sql-server-2005

39
推荐指数
5
解决办法
8万
查看次数