sql - 在 SQL Server 中创建具有只读访问权限的临时表
问题描述
我目前正在编写一个 SQL 脚本。因为我根本不是专家,所以这可能会带我永远。我对从中提取初始数据的数据库具有只读访问权限,但是我想创建一个#TempTable。当我尝试这样做时,它似乎创建了它(至少我没有收到任何错误)但是当我尝试查看它的内容时,我收到一个错误,说我没有查看权限。
我似乎也无权访问 Drop Table - 我猜这也是由于只读状态。
所以我想知道有没有办法解决这个问题?我可以将“temptable”存储在我的 PC 上本地吗?或者我还能做些什么吗?
在此先感谢,
解决方案
关闭连接时会自动删除临时表。如果您是在存储过程中或从 SSMS 执行此工作,那么这不会影响您,但如果您是从 .NET(或另一种编程语言)执行此操作并且您正在连接/断开连接,或者从一个脚本加载它并且尝试从报告中读取它(例如),然后不,该表对于创建它的会话/连接以外的任何会话/连接都将不可见或不存在。
如果您需要几分钟,并且您打算连接/断开连接(超过零次),您应该创建一个表。您可以在自己的架构下执行此操作,也可以选择一个听起来临时的名称。
前任。如果我以 Domain\DataUser1 身份连接,我的架构是 [Domain\DataUser1]
SELECT UserName FROM LoggingTable
INTO TABLE [Domain\DataUser1].TempTable1
--I need those square brackets around my schema because of the \
这将在我的用户架构下创建一个表。我可以从另一个连接查询它
SELECT * FROM [Domain\DataUser1].TempTable1
哦。完成后不要忘记删除临时表:
DROP TABLE [Domain\DataUser1].TempTable1
-- or, if you intend to keep using it --
TRUNCATE TABLE [Domain\DataUser1].TempTable1
推荐阅读
- python - 如何修复 TypeError:字符串格式化期间并非所有参数都转换
- azure-sql-database - 如何将数据从某些本地 SQL 数据库迁移到 Azure SQL 数据库
- node.js - 使用 request-promise 发布登录请求不起作用 http 请求
- c# - 构造函数 C# 返回匿名列表
- javascript - 如何更改chartjs中的x轴线样式?
- java - Java 类中的 SQL 语句提取器
- apache-kafka - confluent-kafka-python:当 Broker 不可用时如何使初始连接超时?
- java - Weblogic 12c - 部署耳朵两次
- c# - 测试用例执行完成后,如何将测试用例结果保存在变量中,无论它是否通过?
- xml - Powershell XML - 寻找价值,选择其他