我有一个表包含2个字段的表.在我的另一个数据库中,我有一个参与者表(也有2列).参与者表我必须在人员表中插入值.但在每次插入之前,我都希望截断人员表.
我已经尝试将Execute Sql任务链接到数据流任务.但是它显示出存在主外键关系的错误.
有没有办法在 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。*
谢谢。
我们尝试在存储过程上授予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)
用户帐户需要像我们一样编写.有人可以提供任何建议吗?
这是我在同一论坛上的上一个问题的后续问题.
我想备份我的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异常终止."
任何想法,什么可能是错的?
非常感谢您的时间和帮助.
我有一个table(table1)with StartDate, StartTime, EndTime,all datetime2和一个OverMidnight布尔值,它指定是否与... EndDate不同(+1)StartDate.
我需要将这些移动到另一个表(table2适用于列)StartDate和一个EndDate,都需要是datetime类型,并使用StartDate与StartTime获得新StartDate和StartDate,OverMidnight以及EndTime获得EndDate.
无论我尝试过什么,都会给我一个错误:
将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.
在这里,我将展示从另一个函数引用一个不存在的函数是可能的,并且 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函数并未退出。
任何的想法?
哪个更快: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工作原理的细节.