我正在尝试使用 DMV 获取表列表的所有依赖项sys.dm_sql_referencing_entities。
这个查询给了我所有表的列表:
SELECT TableName from FinalTableList;
Run Code Online (Sandbox Code Playgroud)
此查询给出 TableA 的依赖关系:
SELECT referencing_entity_name
FROM sys.dm_sql_referencing_entities ('dbo.TableA', 'OBJECT') ;
Run Code Online (Sandbox Code Playgroud)
我想将上述 2 项合并到一个查询或过程中,以便我可以获得以下格式的所有依赖项:
TableA Dependency1
Dependency2
Dependency3
TableB Dependency1
Dependency2
...................
Run Code Online (Sandbox Code Playgroud)
应该如何构建查询?
是否可以从使用 xp_cmdshell 的存储过程调用的 SSIS“脚本任务”返回输出参数?
到目前为止我找到的所有示例都显示了如何为 dts 包变量等赋值;并通过消息框显示它们,但我看到的每个示例都显示脚本任务仅返回 Dts.TaskResult = (int)ScriptResults.Success; 或 Dts.TaskResult = (int)ScriptResults.Failure ...
基本上,我有一个脚本任务,它从按预期工作的 dll 调用中获取多个值;值通过消息框进行验证;但我无法找出如何将它们返回到最初执行 SSIS 包的存储过程。
我错过了一些明显的东西吗?请提供功能代码示例和控制流/数据流等的屏幕截图,说明如何端到端执行此操作... EG:从存储过程 - >执行 *.dtsx 包,向其传递参数,包括输出参数;以及同一存储过程如何在此类调用中读取这些输出参数;当结果返回时...
提前致谢。
指数创建策略是什么?
是否可以在 SQL Server 中的同一列上创建多个非聚集索引?
在同一列上创建集群和非集群怎么样?
非常抱歉,但索引对我来说非常混乱。
有什么方法可以找出 SQL Server 中的估计查询执行时间吗?
sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2 sql-server-2012
我的查询遇到问题。基本上,我想做的是清空一个表,然后从另一个数据库中的同一个表中复制记录。
我确实使用SET IDENTITY_INSERT代码来确保在执行插入之前关闭标识列。但不知何故,它仍然向我抛出错误消息:
消息 8101,级别 16,状态 1,第 3 行
仅当使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表“dbo.UI_PAGE”中标识列的显式值。
以下是我的查询:
DELETE FROM [DB1].[dbo].[MY_TABLE]
SET IDENTITY_INSERT [DB1].[dbo].[MY_TABLE] ON
INSERT INTO [DB1].[dbo].[MY_TABLE]
SELECT *
FROM [DB2].[dbo].[MY_TABLE]
SET IDENTITY_INSERT [DB1].[dbo].[MY_TABLE] OFF
Run Code Online (Sandbox Code Playgroud)
有人能指出我哪一步做错了吗?
多谢!
我在四个不同的生产服务器上安装了一个数据库。每个服务器都有自己不同的用户。当我在这些服务器上使用 create 语句创建新表时,每个服务器都会设置/前置其用户名,例如
Create Table tab_1 ...将
abc.tab_1在 server_1 上使用abcas 登录名
def.tab_1在 server_2 上使用defas 登录名
ghi.tab_1在 server_3 上使用ghias 登录名
jkl.tab_1在 server_4 上使用jklas 登录名
我想用作dbo默认架构,并且必须在每台服务器上为每个新表使用以下语句
ALTER SCHEMA dbo TRANSFER login.table_name;
Run Code Online (Sandbox Code Playgroud)
有没有办法修改Create Table在所有服务器上创建每个表的语句或其他设置dbo.table_name
我正在使用共享托管,并且 SSMS 中有很多限制,因此基于查询的解决方案是合适的。
我想知道当值发生变化时,带参数查询的游标@variable是否可以重新使用(CLOSE+ ) 。在我看来,它总是需要+ + +才能使新值生效。也许没什么大不了的,但我想知道在使用之间是否可以省略+ 。OPEN@variableCLOSEDEALLOCATEDECLAREOPEN@variableDEALLOCATEDECLARE
这里有完整的简单示例供您尝试:
DECLARE @ta TABLE (a int);
INSERT INTO @ta (a) VALUES (1),(2),(4),(8),(16),(32),(64);
---------
DECLARE @current_a int;
DECLARE @threshold int = 12;
DECLARE crs1 CURSOR FOR SELECT a FROM @ta WHERE a < @threshold;
--- first cursor use
OPEN crs1;
FETCH NEXT FROM crs1 INTO @current_a;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @threshold, @current_a
FETCH NEXT FROM crs1 INTO …Run Code Online (Sandbox Code Playgroud) 我有一些表,GUID其名称是生成的。
例如:
我的表名称为:
FD962987-AA3E-441C-B608-2392B68A5287
508482AF-EFCF-41C1-B083-D51BF37C3590
Run Code Online (Sandbox Code Playgroud)
数据库中还有一些其他表。
我只想找到名称为 的表GUID。
我的尝试:
SELECT name
FROM sys.tables
WHERE LEN(tables.name) = 36
Run Code Online (Sandbox Code Playgroud)
上面的查询工作正常,但是当我有其他表(不是 GUID 名称)时,会显示具有相同长度的表名。
SQL Server 2008 R2
为什么
create table A
(
id int,
primary key nonclustered (id)
)
Run Code Online (Sandbox Code Playgroud)
是正确的,执行没有错误?
但
create table A
(
id int,
primary key nonclustered id
)
Run Code Online (Sandbox Code Playgroud)
是错误的?给
')'附近的语法不正确.
附带问题:
为什么
create table c(id int primary key clustered)
Run Code Online (Sandbox Code Playgroud)
被执行
但是
create table c(id int primary key nonclustered)
Run Code Online (Sandbox Code Playgroud)
是错误的?对不起,两个都有效.
是否建议纠正语法不一致?
t-sql sql-server primary-key sql-server-2008-r2 non-clustered-index
我们可以通过他们的名字更改数据库没问题如下
USE master
GO
Run Code Online (Sandbox Code Playgroud)
但是我需要在脚本中使用它并在变量中包含数据库名称.怎么做到这个?
select @cmd = N'use ' + @oldDb + N';'
exec sp_executesql @cmd
Run Code Online (Sandbox Code Playgroud)
这不起作用 - 当前数据库在执行后保持不变.
有可能吗?
可能重复:
SQL Server 2005仅还原一个架构
我有一个包含几个SQL Server 2008 R2中的架构的数据库。所有模式都包含相同的表。现在,我希望能够仅还原一个模式的备份,而其他模式保持原样。
我正在寻找等同于pg_restore --schema="schemaname"在PostgreSQL中使用的东西。有什么办法可以在SQL Server中做到这一点?
database sql-server database-backups sql-server-2008-r2 database-schema
sql-server ×6
database ×2
t-sql ×2
create-table ×1
cursor ×1
dependencies ×1
dmv ×1
identity ×1
owner ×1
primary-key ×1
schema ×1
sql ×1
ssis ×1
xp-cmdshell ×1