我有几台服务器,里面有很多数据库。有些数据库有一个名为vw_mydata的视图。
我想要做的是创建一个包含一个名为vw_mydata的视图的所有数据库的列表,然后执行该视图并将其内容存储在一个表中,然后该表包含来自所有vw_mydata的所有数据。
我知道我可以找到包含该视图的所有数据库
sp_msforeachdb 'select "?" AS dbName from [?].sys.views where name like ''vw_mydata'''
但是,我拥有的记录集和数据库一样多。如何使用这个循环遍历数据库?
我更喜
我有一个从server 2012到PostgreSQL 9.3的链接服务器设置,以及一个存储过程,从它中提取3个过滤的表,并将每个表存储在一个临时表中。
在存储过程的末尾有一个来自本地SQL数据库的带有许多左联接的最后查询,它包括这3个临时表。
我禁用了“启用RPC的分布式事务处理”。每1/6或更多次使用此存储过程的尝试都失败,web服务器上的错误为:Unknown Error Detected System.Data.SqlClient.SqlException (0x80131904): The operation could not be performed because OLE D
我尝试使用OPENQUERY从MySQL获取一些数据,但我需要将结果放入临时表中进行操作。
我尝试了几个示例,但得到了相同的错误:
DECLARE @lastid int = (SELECT MAX(remoteid) FROM cdr)
DECLARE @TSQL varchar(8000)
SELECT @TSQL = 'SELECT * FROM OPENQUERY([PBXA_MYSQL],''SELECT * INTO #tempcdr FROM asterisk.cdr WHERE id > ''''' + C
我正在使用SqlBulkCopy进行转换。我现在有一个类的IList集合,基本上我可以将它转换成一个DataTable,以便与SqlBulkCopy一起使用。
问题是,我可以有3个相同的ID记录。
让我解释一下..。这里有3条记录
ID Name Address
1 Scott London
1 Mark London
1 Manchester
基本上我需要依次插入..。因此,如果记录1不存在,则插入记录1,如果存在,则需要更新记录,而不是插入新的1(注意id仍然是1),因此在
我已经创建了一个存储过程,我计划将一个表名传递到其中,以允许我从控制表中收集URN,并通过将现有的URN (int标识)添加到控制表中的存储值来将其分配给传递的表。
下面是存储过程:
ALTER PROCEDURE [dbo].[System_IndividualURN_Processing]
@TableName Varchar(100)
AS Begin
DECLARE @iCounter INT,
@NextCustomerURN INT,
@TSQL Varchar(Max)
SET @
我有个问题。我必须在多个表上插入。这里的问题是,我需要其他两个表中第一个表的ID。所以我有3张桌子。首先插入,然后使用SCOPE_IDENTITY,我得到了ID,并且必须在另一个2上输入它。问题是,SCOPE_IDENTITY给了我最后一次插入的ID。所以在第三次插入时,我得到了第二个ID,而不是第一个。
现在,我尝试使用select获取ID并将其保存到一个变量中。但不知何故,这并不管用。
我在php上使用事务。以下是我的代码
sqlsrv_begin_transaction( $conn );
// Set up and execute the first query.
我有一个大表all_records,有1亿条记录和许多列。我希望根据多列的耗时操作将大约3000万条记录插入到另一个表records_not_used_now中(在下面的查询中,这些操作被命名为f(n) )。然后从原始表all_records中删除这些记录。
查询如下:
insert into records_not_used_now
select * from all_records where f(n) > 0;
delete from all_records where f(n) > 0;
然而,由于f(n) >0的判断要花费计算时间,我不想做两次。MySQL中是
嗨,大家好,我已经为此挣扎了一段时间了!我有一些数据文件,里面有日期,它们被转储到一个临时表中。我希望我的脚本/函数所做的是读取临时表中每条记录的日期,并移动到适当的表。现在,我知道只需使用一些静态插入就可以很容易地完成这项工作,例如
INSERT INTO TABLE_2011_08
WHERE Datafields = 2011_08
然而,我希望它是动态的,所以我想像函数/存储过程那样传递每条记录的日期。然而,我的大脑因此而融化了!
临时表中的数据记录可能如下所示:-
RecordA 2011-08-30 Data Data Data
RecordB 2011-08-31 Data Da
我想联合3个不同的语句,问题是我使用了一个循环,如果在我的查询中:
WHILE some condition
BEGIN
if(condition 1)
begin
select something
end
else if(condition 2)
begin
select something
end
else if(condition 3)
begin
select something
end
END
查询运行良好,但它返回了100多个不同的select结果(不同的表)。如何将这些select结果合并到一个表中?
我的代码给出了一个带有GO语句的SQL,通过使用以下逻辑将其转换为一个没有GO语句的SQL语句:
"EXEC('" + sql.Replace("'", "''").Replace("GO", "');EXEC('") + "')"
当然,实际的逻辑有点强健,但精神是一样的。
然而,GO并不等同于EXEC。例如,以下代码工作:
IF OBJECT_ID('tempdb..#tmp') IS NOT NULL DROP TABLE
我需要从动态SQL中识别列的列表及其原始值。
示例:我有一条SQL语句:
@tsql = N'SELECT A.ID AS PROCESSID, COALESCE(STEP_ID,'''') AS programmid, NAME FROM DBO.TBL_LOG A'
根据,它将只返回列名。我需要列名和它的原始值。
预期结果:
有人能帮个忙吗?提前谢谢你。
我问这个问题是因为我有时会陷入僵局,我不明白。
这是一种情况:
更新表A的存储过程:
UPDATE A
SET A.Column = @SomeValue
WHERE A.ID = @ID
将插入临时表# temp的存储过程:
INSERT INTO #temp (Column1,Column2)
SELECT B.Column1, A.Column2
FROM B
INNER JOIN A
ON A.ID = B.ID
WHERE B.Code IN ('Something','SomethingElse')
我看到可能会有锁等待