小编Pon*_*ife的帖子

由于外键,TRUNCATE TABLE查询无法在SSIS中执行

我有一个表包含2个字段的表.在我的另一个数据库中,我有一个参与者表(也有2列).参与者表我必须在人员表中插入值.但在每次插入之前,我都希望截断人员表.

我已经尝试将Execute Sql任务链接到数据流任务.但是它显示出存在主外键关系的错误.

sql ssis sql-server-2008

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

SQL - 模拟 SYSTEM_USER

有没有办法在 MS SQL 2005 上模拟或更改 SYSTEM_USER?

我有许多视图(由第三方编写),我无法更改这些视图将 SYSTEM_USER 引用到“ID 表”。

... AND idCode = SUBSTRING(SYSTEM_USER, CHARINDEX('\', SYSTEM_USER) + 1, LEN(SYSTEM_USER))
Run Code Online (Sandbox Code Playgroud)

*我确实有权访问视图从中提取的表,但这些视图添加了 SYSTEM_USER。*

谢谢。

sql sql-server sql-server-2005 execute

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

授予包含点的用户名的权限时出现"语法不正确"错误

我们尝试在存储过程上授予EXECUTE角色,但是以下命令

GRANT EXECUTE ON dbo.sp_AgentIdAprCheck TO s.AgentData.Dev
Run Code Online (Sandbox Code Playgroud)

继续给我们以下错误(它不喜欢第一个时期):

Incorrect syntax near 's.AgentData.Dev'.
Run Code Online (Sandbox Code Playgroud)

用户帐户需要像我们一样编写.有人可以提供任何建议吗?

t-sql

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

备份数据库时出现OS错误3

这是我在同一论坛上的上一个问题的后续问题.

我想备份我的SQL Server数据库.以下是C#中备份的代码.

userConn = new SqlConnection(userdatabase);
userConn.Open();

string UserString;

UserString = "BACKUP DATABASE @DBName TO  DISK = @FilePath";

String destPath = DestDirectory + "\\UserDataTable.bak";
SqlCommand cmd = new SqlCommand(UserString, userConn);

cmd.Parameters.AddWithValue("@dbName", userConn.Database);
cmd.Parameters.AddWithValue("@FilePath", destPath);

cmd.ExecuteNonQuery();
cmd.Dispose();
Run Code Online (Sandbox Code Playgroud)

但是,它会抛出一个SQLException,

"无法打开备份设备'D:\ BookKeeping\Database\11_01_2013_21_15\Database\UserDataTable.bak'.操作系统错误3(无法检索此错误的文本.原因:15105).BACKUP DATABASE异常终止."

任何想法,什么可能是错的?

非常感谢您的时间和帮助.

c# sql-server

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

将datetime2转换为datetime时出现"超出范围"错误

我有一个table(table1)with StartDate, StartTime, EndTime,all datetime2和一个OverMidnight布尔值,它指定是否与... EndDate不同(+1)StartDate.

我需要将这些移动到另一个表(table2适用于列)StartDate和一个EndDate,都需要是datetime类型,并使用StartDateStartTime获得新StartDateStartDate,OverMidnight以及EndTime获得EndDate.

无论我尝试过什么,都会给我一个错误:

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.

sql-server-2008

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

为什么我可以在另一个函数中引用一个不存在的函数?

在这里,我将展示从另一个函数引用一个不存在的函数是可能的,并且 SQL Server 在执行时间之前不会检查它:

USE [SomeDataBase];
SELECT dbo.Booo();
Run Code Online (Sandbox Code Playgroud)

显然,如果您没有函数Booo,则会产生关于Booo无法识别函数的错误。不过这并不意外!

现在,试试这个:

CREATE FUNCTION dbo.Foo()
RETURNS INT
AS
BEGIN
    DECLARE @Temp INT
    SET @Temp = (SELECT dbo.Booo())
    RETURN 1
END
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,该脚本创建了该函数,Foo尽管该Booo函数并未退出。

任何的想法?

t-sql sql-server-2008

0
推荐指数
1
解决办法
134
查看次数

哪个更快:MAX()或IDENT_CURRENT?

哪个更快:Select Max(<IdentityKeyColumn>) + 1或者Select Ident_Current('<tablename>') +1

我有一个450万行的表,旧的存储过程使用: select @MaxID = Max(ID) + 1 from tablename.

我想更新它使用: Select @MaxID = ident_current('tablename') + 1

但是,我不确定从哪里ident_current获取表的最后一个标识值.是从master或msdb数据库中的系统表中查询还是对表的数据进行某种最大聚合?

我需要做一个ident_current应该更快的案例,但我还没有找到有关ident_current工作原理的细节.

sql-server

-4
推荐指数
1
解决办法
1786
查看次数

标签 统计

sql-server ×3

sql-server-2008 ×3

sql ×2

t-sql ×2

c# ×1

execute ×1

sql-server-2005 ×1

ssis ×1