我有许多生成的.sql文件,我想连续运行.我想从查询中的SQL语句(即查询分析器/服务器管理工作室)运行它们.
有可能做这样的事情,如果是这样的话,这样做的语法是什么?
我希望有类似的东西:
exec 'c:\temp\file01.sql'
exec 'c:\temp\file02.sql'
Run Code Online (Sandbox Code Playgroud)
我正在使用SQL Server 2005并在管理工作室中运行查询.
所有关于SQL Server死锁的文档都讨论了操作1锁定资源A然后尝试访问资源B并且操作2锁定资源B并尝试访问资源A的情况.
但是,我常常在一些繁忙的应用程序中看到select和更新之间甚至多个选择之间的死锁.我发现死锁跟踪输出的一些细节非常难以理解但我真的只想了解什么可能导致两个单独操作之间的死锁.当然,如果一个选择具有读锁定,则更新应该在获得独占锁之前等待,反之亦然?
这种情况发生在SQL Server 2005上,而不是我认为这会产生影响.
在sql 2005中,而不是从dateparts年,月和日建立一个查询,
有没有更简洁的方式编写where子句?
我在SQL Server 2005中有一个从SQL Server 2000启动的数据库,它仍然使用TEXT类型字段而不是varchar(max).
我需要在文本字段中查找并替换一串字符,但是我发现的所有如何执行此操作的示例似乎都不适合我.似乎UPDATETEXT命令要求显式设置两个参数"insert_offset"和"delete_length",但我正在搜索的字符串可能会出现在文本中的任何一点,甚至是同一单元格中的几个点.我对这两个参数的理解是,我搜索的字符串将始终位于同一位置,因此insert_offset是UPDATETEXT命令将开始替换文本的文本中的空格数.
示例:需要查找:<u>并将其替换为:<u>
文本字段示例:
*Everyone in the room was <b><u>tired</u>.</b><br>Then they woke <b><u>up</u>.
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?谢谢!
我有两张桌子
Table1(
FileID,
BundledFileID,
Domain)
Run Code Online (Sandbox Code Playgroud)
和
Table2(
FileID,
FileType,
FileName)
Run Code Online (Sandbox Code Playgroud)
在表2中FileID,它FileType是复合主键.我想创建一个从外键关系Table1.FileID 到Table2.
是否有可能做到这一点?
sql-server-2005 foreign-key-relationship composite-primary-key
我在列中有不同的日期.例如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 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) 如何检查光标是否打开?因为很多次我遇到错误'游标已经存在'.请让我知道如何检查光标是否已处于打开状态.
实际上我已经关闭以及最后解除分配它(CLOSE ppm_cursor; DEALLOCATE ppm_cursor;)但是我仍然得到同样的错误可能是什么原因.
我正在尝试使用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地址和端口.关于什么可能是问题的任何想法,以及它是否在服务器端?
我有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-server-2005 ×10
sql-server ×8
sql ×4
t-sql ×2
deadlock ×1
freetds ×1
performance ×1
php ×1
text ×1
unixodbc ×1