标签: sql-server-2005

是否可以从SQL查询执行文本文件?

我有许多生成的.sql文件,我想连续运行.我想从查询中的SQL语句(即查询分析器/服务器管理工​​作室)运行它们.
有可能做这样的事情,如果是这样的话,这样做的语法是什么?

我希望有类似的东西:

exec 'c:\temp\file01.sql' 
exec 'c:\temp\file02.sql'
Run Code Online (Sandbox Code Playgroud)

我正在使用SQL Server 2005并在管理工作室中运行查询.

sql sql-server sql-server-2005

37
推荐指数
5
解决办法
7万
查看次数

SQL Server在select/update或多个选择之间发生死锁

所有关于SQL Server死锁的文档都讨论了操作1锁定资源A然后尝试访问资源B并且操作2锁定资源B并尝试访问资源A的情况.

但是,我常常在一些繁忙的应用程序中看到select和更新之间甚至多个选择之间的死锁.我发现死锁跟踪输出的一些细节非常难以理解但我真的只想了解什么可能导致两个单独操作之间的死锁.当然,如果一个选择具有读锁定,则更新应该在获得独占锁之前等待,反之亦然?

这种情况发生在SQL Server 2005上,而不是我认为这会产生影响.

sql-server deadlock sql-server-2005

37
推荐指数
6
解决办法
5万
查看次数

获取datetime列=今天的行 - SQL server noob

在sql 2005中,而不是从dateparts年,月和日建立一个查询,

有没有更简洁的方式编写where子句?

sql-server sql-server-2005

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

SQL Server在TEXT字段中查找和替换

我在SQL Server 2005中有一个从SQL Server 2000启动的数据库,它仍然使用TEXT类型字段而不是varchar(max).

我需要在文本字段中查找并替换一串字符,但是我发现的所有如何执行此操作的示例似乎都不适合我.似乎UPDATETEXT命令要求显式设置两个参数"insert_offset"和"delete_length",但我正在搜索的字符串可能会出现在文本中的任何一点,甚至是同一单元格中的几个点.我对这两个参数的理解是,我搜索的字符串将始终位于同一位置,因此insert_offset是UPDATETEXT命令将开始替换文本的文本中的空格数.

示例:需要查找:&lt;u&gt;并将其替换为:<u>

文本字段示例:

*Everyone in the room was <b>&lt;u&gt;tired&lt;/u&gt;.</b><br>Then they woke <b>&lt;u&gt;up&lt;/u&gt;.
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?谢谢!

text sql-server-2005

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

SQL Server 2005中与复合主键的外键关系

我有两张桌子

Table1(
  FileID,
  BundledFileID,
  Domain)
Run Code Online (Sandbox Code Playgroud)

Table2(
  FileID,
  FileType,
  FileName)
Run Code Online (Sandbox Code Playgroud)

在表2中FileID,它FileType是复合主键.我想创建一个从外键关系Table1.FileIDTable2.

是否有可能做到这一点?

sql-server-2005 foreign-key-relationship composite-primary-key

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

如何从TSQL中的日期获取Quarter

我在列中有不同的日期.例如20080102,20070821

我想在年份和季度转换这个日期.

20080102
20070821
Run Code Online (Sandbox Code Playgroud)

 

Year      Quarter
2008      2008-Q1
2007      2007-Q3
Run Code Online (Sandbox Code Playgroud)

我如何获得Quarter级别的详细信息.

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

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

查询运行速度很快,但在存储过程中运行缓慢

我正在使用SQL 2005探查器进行一些测试.

我有一个存储过程,它只运行一个SQL查询.

当我运行存储过程时,它需要很长时间并执行800,000次磁盘读取.

当我对存储过程分开运行相同的查询时,它会执行14,000次磁盘读取.

我发现如果我使用OPTION(重新编译)运行相同的查询,则需要800,000次磁盘读取.

由此,我做出(可能是错误的)假设,即存储过程每次都重新编译,这就是导致问题的原因.

任何人都可以对此有所了解吗?

我已经设置了ARITHABORT.(这解决了stackoverflow上的类似问题,但没有解决我的问题)

这是整个存储过程:

CREATE PROCEDURE [dbo].[GET_IF_SETTLEMENT_ADJUSTMENT_REQUIRED]
 @Contract_ID int,
 @dt_From smalldatetime,
 @dt_To smalldatetime,
 @Last_Run_Date datetime
AS
BEGIN
 DECLARE @rv int


 SELECT @rv = (CASE WHEN EXISTS
 (
  select * from 
  view_contract_version_last_volume_update
  inner join contract_version
  on contract_version.contract_version_id = view_contract_version_last_volume_update.contract_version_id
  where contract_version.contract_id=@Contract_ID
  and volume_date >= @dt_From
  and volume_date < @dt_To
  and last_write_date > @Last_Run_Date
 )
 THEN 1 else 0 end)

 -- Note that we are RETURNING a value rather than SELECTING it.
 -- This means we …
Run Code Online (Sandbox Code Playgroud)

sql-server performance stored-procedures sql-server-2005

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

如何检查游标是否存在(打开状态)

如何检查光标是否打开?因为很多次我遇到错误'游标已经存在'.请让我知道如何检查光标是否已处于打开状态.

实际上我已经关闭以及最后解除分配它(CLOSE ppm_cursor; DEALLOCATE ppm_cursor;)但是我仍然得到同样的错误可能是什么原因.

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

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

"Adaptive Server不可用或不存在"错误从PHP连接到SQL Server

我正在尝试使用unixODBC和FreeTDS从我的Mac连接到SQL Server 2005数据库,如我在此处所述.但是,当我尝试使用相同的设置连接到不同的数据库时,我得到:

Connection Failed:[FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist.
Run Code Online (Sandbox Code Playgroud)

这是我的freetds.conf设置:

[my_db]
host = 12.34.56.789
port = 1433
tds version = 8.0
Run Code Online (Sandbox Code Playgroud)

这是我的odbc.ini:

[my_dsn]
Driver = /opt/local/lib/libtdsodbc.so
Description = My Database
Trace = no
Servername = my_db
Database = MyDB

[ODBC Data Sources]
my_dsn = FreeTDS
Run Code Online (Sandbox Code Playgroud)

我仍然可以连接到我在这台计算机上设置的其他数据库(在我上面链接的博客文章中描述),所以我很确定错误不在Mac端.我已在服务器上验证我正在使用正确的IP地址和端口.关于什么可能是问题的任何想法,以及它是否在服务器端?

php sql-server sql-server-2005 unixodbc freetds

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

从另一个存储过程SQL Server调用存储过程

我有3个插入存储过程,每个SP在2个不同的表中插入数据

Table 1          Table 2                
idPerson         idProduct             
name             productName            
phoneNumber      productdescription     
FK-idProduct
Run Code Online (Sandbox Code Playgroud)

对于表2,表1 SP的SP

create procedure test1                create procedure test2
WITH                                  WITH 
EXECUTE as caller                     EXECUTE as caller
AS                                    AS
declare                               declare

@idPerson int,                        @idProduct int,
@name varchar(20),                    @productName varchar(50),
@phone varchar(20)                    @productoDescription varchar(50)


  SET nocount on;                     SET nocount on;
    Begin                             Begin
      insert into table1(                insert into table2(
                idPerson,                          idProduct,
                name,                              productName,
                phone)                             productDescription)
          values(                            values(
                @idPerson,                         @idProduct,
                @name,                             @productName,
                @phone)                            @productDescription)
      end                               end
Run Code Online (Sandbox Code Playgroud)

我需要从存储过程测试1调用存储过程测试2并将FK-ID插入表1中

sql sql-server stored-procedures sql-server-2005

36
推荐指数
2
解决办法
16万
查看次数