我有一个奇怪的情况,我的数据库中的一些表从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 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?
我会在不同的情况下测试它,但我不知道如何读取当前隔离级别设置的内容.
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) 有没有办法用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) 我想做这个:
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)
但这需要两倍的时间.什么是最快的方式?
有没有一种简单的方法来检查表中的列是否存在外键?我正在编写一个脚本,只有当它不存在时才会添加外键.
我遇到了更新存储过程的问题.错误是:
UPDATE失败,因为以下SET选项具有不正确的设置:'QUOTED_IDENTIFIER'.验证SET选项是否正确,以便与计算列和/或查询通知和/或xml数据类型方法的索引视图和/或索引一起使用.
SQL状态:42000本
机错误:1934
遗憾的是,此表没有索引视图,计算列或查询通知.这个存储过程在过去几天运行良好,并且从今天起一直在返回此错误.
是否有任何建议有助于确定问题?
注:如果我设置quoted_identifier到ON并重新运行CREATE PROCEDURE,这个问题将是固定的(现在).但我想先了解是什么引发了这个问题.
有没有人知道一个查询列出了应用了"WITH NOCHECK"描述的数据库中的所有外键?(移除它们将提高性能和稳定性).
我需要对varchar(20)字段进行以下修改:
例如
'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) 我有一个表,我在其中为员工插入行,但下次当我想插入行时我不想再插入该员工的数据只是想要更新所需的列,如果它退出那里,如果没有然后创建新行
我们如何在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 ×10
sql ×4
sql-server ×4
t-sql ×3
foreign-keys ×2
asp.net ×1
c# ×1
identity ×1
system ×1