我正在构建一次性查询来遍历一组连接的表。 SELECT语句使用“SELECT *”。由于它是一个有许多字段的表,我不想将每列指定为一个变量。有没有办法将FETCH插入数组或SET中,只需获取我想要的值?T-SQL,Cursors,FETCH INTO。如何使用SELECT *
1
A
回答
3
INTO @variable_name[ ,...n]
“允许从所涉及的列中的数据取到被放置到局部变量
每个变量在列表中,从左至右,与对应的列相关联在游标结果集中,每个变量的数据类型必须与相应结果集列的数据类型匹配或成为支持的隐式转换,变量数必须与游标选择列表中的列数匹配。
如果您正在寻找使用游标可能与CLR Stored procedures
1
即使有,你也不想。获取额外字段是SQL Server应用程序中降低性能的最常见原因之一。通过这样做,您可以限制优化器有效使用索引的能力。
如果不指定列名称,您会如何“建议您想要的值”?
1
找到更好的灵活性为什么你需要使用游标?那些在SQL Server场景中被人们所诟病 - 大多数情况下,它们是不必要的,而且通常它们非常缓慢并且损害了性能。
你想用光标完成什么?难道你不能以基于集合的方式来实现它,并使用SQL Server的能力达到最大值?
马克
1
在2K5(SQL 2000中有不同的系统对象),使用SQL元数据能够快速地写出与表/列名的长列表查询:
SELECT
O.Name + '__' + C.Name + ' = ' + O.Name + '.' + C.Name + ','
FROM Sys.Objects O
JOIN Sys.Columns C
ON C.Object_Id = O.Object_Id
WHERE O.Name IN ('Table1', 'Table1')
ORDER BY O.Name, C.Column_Id
我不知道到底你想用结果集做什么,但这可能是一个体面的开始。
另外,你可以声明变量作为SQL_VARIANT和FETCH结果集为他们这样的:
DECLARE @Col1 SQL_VARIANT
SELECT @Col1 = Table1.Column1 FROM Table1
PRINT CONVERT(varchar(max), @Col1)
我不知道这是什么斩获你虽然。
0
这仅建议那些每天使用SQL的人,不是专门回答这个问题。
RedGate产品SQL Prompt能够通过使用快捷键(Ctrl-B,Ctrl-W)将通配符扩展为单个字段名称。这可以为您节省大量时间,并且可以更轻松地从查询中删除几个字段,以便您需要大多数。
0
在SQL2005中,您还可以右键单击表格并选择打开的表格。然后,您单击小SQL图标,您会看到select语句,就像从YourTable中选择*一样。再次单击!-icon select * from将被扩展为完整的字段列表。 祝你好运。
相关问题
- 1. SQL FETCH,Cursors和RPG
- 2. 使用SELECT ... INTO
- 3. SELECT INTO使用Oracle
- 4. 使用SELECT INTO与多行
- 5. SELECT INTO INTEGER ARRAY
- 6. SELECT INSERT INTO
- 7. sql select into subquery
- 8. SELECT INTO not working
- 9. Inserto into ... select
- 10. SELECT INTO advanced
- 11. SQL Select Into #Temp
- 12. SELECT into Array
- 13. sql select into
- 14. SELECT INTO with LIMIT
- 15. SQL Server:EXISTS(SELECT INTO)
- 16. Sub Select into LINQ
- 17. INSERT INTO与SELECT
- 18. select select into DB的结果
- 19. INSERT INTO ... SELECT,并从SELECT
- 20. insert into mysql else select select?
- 21. SELECT INTO与SELECT在PostgreSQL中
- 22. 使用sqlalchemy生成:SELECT * ... INTO OUTFILE“file”;
- 23. ERROR权限使用SELECT INTO FILE ...在MySQL
- 24. 使用SELECT INTO作为源选择
- 25. ORA 00937同时使用INSERT INTO SELECT
- 26. 使用select into语句时出错
- 27. 使用Java谓词的“SELECT INTO”
- 28. SELECT INTO OUTFILE不起作用?
- 29. 如何将INSERT INTO ... SELECT转换成MongoDB
- 30. 如何在Access VB中使用INSERT INTO SELECT查询?
这是修复一些历史数据的一次性查询。我不关心表现。像nameofset ['fieldname']。我只是不想定义所有的领域。看起来这是不可能的,但:( – 2009-06-16 20:42:16